# 几何畸变矫正子系统<a name="ZH-CN_TOPIC_0000002408098170"></a>







## 概述<a name="ZH-CN_TOPIC_0000002408258150"></a>

几何畸变矫正（Geometric Distortion Correction，以下简称GDC）子系统实现的功能：对一帧图像进行鱼眼校正（包括360°全景、180°全景和Normal三种校正模式）、LDC（镜头畸变校正）校正、展宽、旋转、PMF矫正、输出图像拼接和输出图像打背景色功能。

>![](public_sys-resources/icon-notice.gif) **须知：** 
>-   仅SS928V100/SS927V100/SS626V100支持此模块。
>-   SS626V100不支持LDC、展宽、低延时功能。

## 功能描述<a name="ZH-CN_TOPIC_0000002408098302"></a>



### 基本概念<a name="ZH-CN_TOPIC_0000002441697333"></a>

-   job

    GDC管理task的结构，一个job里可以包含多个task，GDC保证task按照添加到job的顺序执行，并且保证一个job里的所有task一次性提交硬件执行。用户可以通过GDC的模块参数（g\_max\_gdc\_job）设置GDC支持的最大job数。job数取值范围为\[20, 400\]，默认值为128。

-   task

    对一幅图像完成具体的一个或多个操作，比如鱼眼校正、LDC矫正等。用户可以通过GDC的模块参数（g\_max\_gdc\_task）设置GDC支持的最大task数。task数取值范围为\[20, 800\]，默认值为200。

-   node

    GDC硬件的最小执行单位（对硬件而言），一个task对应一个node。node中包含硬件工作需要的信息，比如源的地址，目标的地址，操作的类型等，并按照硬件要求的形式组织。用户可以通过GDC的模块参数（g\_max\_gdc\_node）设置GDC支持的最大node数。node数取值范围为\[20, 800\]，默认值为200。

### 功能描述<a name="ZH-CN_TOPIC_0000002441697413"></a>

GDC的功能主要有鱼眼校正（包含矫正后的输出图像拼接、输出图像打背景色等功能）、镜头畸变校正、展宽、旋转、PMF矫正等。

-   鱼眼校正

    GDC支持对一幅图像进行鱼眼校正处理。

    >![](public_sys-resources/icon-notice.gif) **须知：** 
    >-   鱼眼校正支持三种校正模式，360°全景模式，180°全景模式，normal模式。
    >-   360°全景模式支持地装和顶装；180°全景模式支持壁装；normal模式支持地装，顶装，壁装。
    >-   鱼眼功能在算法处理时，算法计算分块大小跟图像输出的宽高，out\_radius，模式有关。分块越多耗时越大，out\_radius最大配置为max\(图像输出宽,图像输出高\) 的一半，若超出分块数会明显增加，硬件耗时也会显著增加。

    GDC支持对一幅图像进行鱼眼校正的同时进行缩放处理。鱼眼缩放效果不好，建议使用典型参数设置，尽量不使用GDC对鱼眼矫正后图像进行缩放。

    >![](public_sys-resources/icon-notice.gif) **须知：** 
    >鱼眼输入输出图像规格见[表1](#_Ref48226574)所示。支持在进行鱼眼校正的同时，在输出图像允许的范围内对图像进行缩放。

-   镜头畸变校正

    GDC支持对一幅图像进行镜头畸变校正处理。

-   展宽

    GDC支持对一幅图像进行远端展宽处理。

    >![](public_sys-resources/icon-notice.gif) **须知：** 
    >使用GDC进行镜头畸变校正或展宽处理时，输入图像大小与输出图像大小必须一致，不支持同时进行缩放。

-   旋转

    GDC支持对一帧图像进行固定角度或任意角度旋转，固定角度旋转不支持压缩输出。固定角度旋转只有在和LDC、DIS或者展宽任务组合时才由GDC完成，否则由VGS完成。

-   PMF矫正

    GDC支持对一帧图像进行PMF矫正处理，可实现平面图像的投影变换，详细说明参见《GDC调试指南》。

-   压缩

    GDC只支持LINEAR格式的非压缩图像输入，只支持LINEAR格式的压缩/非压缩图像输出。

-   输出图像拼接

    GDC支持对一幅图像的多个区域分别进行FISHEYE校正，并对校正后的图像进行拼接后输出。非压缩输出时，各区域的x坐标要求16对齐，y坐标要求2对齐；压缩输出时，各区域的x坐标要求256对齐，各区域的宽要求256对齐或等于输出图像宽与该区域x坐标的差值，y坐标都要求2对齐。

    >![](public_sys-resources/icon-notice.gif) **须知：** 
    >这里的输出图像拼接是指在同一个VI或VPSS的通道内，最多支持对4个区域分别进行校正，并将校正后的图像拼接为一幅图像输出。多个通道之间的鱼眼校正处理输出，不支持拼接输出。

-   输出图像打背景色

    FISHEYE矫正时支持对输出的图像打背景色，用于输出有缝隙拼接。无缝拼接输出时建议关闭背景色，节省性能。

**表 1**  SS928V100 GDC硬件规格

<a name="_Ref48226574"></a>
<table><thead align="left"><tr id="row960mcpsimp"><th class="cellrowborder" valign="top" width="32%" id="mcps1.2.3.1.1"><p xml:lang="zh-CN" id="p962mcpsimp"><a name="p962mcpsimp"></a><a name="p962mcpsimp"></a>规格点</p>
</th>
<th class="cellrowborder" valign="top" width="68%" id="mcps1.2.3.1.2"><p xml:lang="zh-CN" id="p964mcpsimp"><a name="p964mcpsimp"></a><a name="p964mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row966mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p968mcpsimp"><a name="p968mcpsimp"></a><a name="p968mcpsimp"></a>视频输入数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><a name="ul970mcpsimp"></a><a name="ul970mcpsimp"></a><ul id="ul970mcpsimp"><li><span xml:lang="zh-CN" id="ph972mcpsimp"><a name="ph972mcpsimp"></a><a name="ph972mcpsimp"></a>只支持</span>OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输入。</li><li><span xml:lang="zh-CN" id="ph974mcpsimp"><a name="ph974mcpsimp"></a><a name="ph974mcpsimp"></a>只支持</span>LINEAR格式<span xml:lang="zh-CN" id="ph975mcpsimp"><a name="ph975mcpsimp"></a><a name="ph975mcpsimp"></a>。</span></li><li xml:lang="zh-CN">只支持非压缩图像。</li><li xml:lang="zh-CN">只支持8Bit的YUV数据。</li></ul>
</td>
</tr>
<tr id="row978mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p980mcpsimp"><a name="p980mcpsimp"></a><a name="p980mcpsimp"></a>输入图像分辨率</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><a name="ul982mcpsimp"></a><a name="ul982mcpsimp"></a><ul id="ul982mcpsimp"><li xml:lang="zh-CN">最小支持：鱼眼校正为1280*720，镜头畸变校正为640x480，展宽为640x480，固定角度旋转为360x360，任意角度旋转为480x360，PMF矫正为480x360。</li><li xml:lang="zh-CN">最大支持：8192x8192。</li><li xml:lang="zh-CN">宽度和高度均为2像素对齐，stride 16对齐。</li></ul>
</td>
</tr>
<tr id="row986mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p988mcpsimp"><a name="p988mcpsimp"></a><a name="p988mcpsimp"></a>视频输出数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><a name="ul990mcpsimp"></a><a name="ul990mcpsimp"></a><ul id="ul990mcpsimp"><li xml:lang="zh-CN">只支持OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输出。</li></ul>
<a name="ul993mcpsimp"></a><a name="ul993mcpsimp"></a><ul id="ul993mcpsimp"><li><span xml:lang="zh-CN" id="ph995mcpsimp"><a name="ph995mcpsimp"></a><a name="ph995mcpsimp"></a>只支持</span>LINEAR格式<span xml:lang="zh-CN" id="ph996mcpsimp"><a name="ph996mcpsimp"></a><a name="ph996mcpsimp"></a>。</span></li><li xml:lang="zh-CN">支持非压缩和<span xml:lang="en-US" id="ph998mcpsimp"><a name="ph998mcpsimp"></a><a name="ph998mcpsimp"></a>段压缩</span>图像。</li><li xml:lang="zh-CN">只支持8Bit的YUV数据。</li></ul>
</td>
</tr>
<tr id="row1000mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p1002mcpsimp"><a name="p1002mcpsimp"></a><a name="p1002mcpsimp"></a>输出图像分辨率</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><a name="ul1004mcpsimp"></a><a name="ul1004mcpsimp"></a><ul id="ul1004mcpsimp"><li xml:lang="zh-CN">最小支持：鱼眼校正为640x360，镜头畸变校正为640x480，展宽为640x480，固定角度旋转为360x360，任意角度旋转为480x360，PMF矫正为480x360。</li><li xml:lang="zh-CN">最大支持：8192x8192。</li><li>高度为2像素对齐；非压缩输出时宽为2像素对齐，压缩输出时为256对齐，或等于输出宽大小减去该校正区域的x坐标<span xml:lang="zh-CN" id="ph1008mcpsimp"><a name="ph1008mcpsimp"></a><a name="ph1008mcpsimp"></a>。stride 16对齐。</span></li></ul>
</td>
</tr>
<tr id="row1009mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p1011mcpsimp"><a name="p1011mcpsimp"></a><a name="p1011mcpsimp"></a>缩放能力</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p1013mcpsimp"><a name="p1013mcpsimp"></a><a name="p1013mcpsimp"></a>镜头畸变校正、展宽不支持缩放。</p>
</td>
</tr>
<tr id="row1014mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p1016mcpsimp"><a name="p1016mcpsimp"></a><a name="p1016mcpsimp"></a>性能</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p1018mcpsimp"><a name="p1018mcpsimp"></a><a name="p1018mcpsimp"></a>3840x2160@60fps</p>
</td>
</tr>
</tbody>
</table>

**表 2**  SS626V100 GDC硬件规格

<a name="table1019mcpsimp"></a>
<table><thead align="left"><tr id="row1025mcpsimp"><th class="cellrowborder" valign="top" width="32%" id="mcps1.2.3.1.1"><p xml:lang="zh-CN" id="p1027mcpsimp"><a name="p1027mcpsimp"></a><a name="p1027mcpsimp"></a>规格点</p>
</th>
<th class="cellrowborder" valign="top" width="68%" id="mcps1.2.3.1.2"><p xml:lang="zh-CN" id="p1029mcpsimp"><a name="p1029mcpsimp"></a><a name="p1029mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1031mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p1033mcpsimp"><a name="p1033mcpsimp"></a><a name="p1033mcpsimp"></a>视频输入数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><a name="ul1035mcpsimp"></a><a name="ul1035mcpsimp"></a><ul id="ul1035mcpsimp"><li><span xml:lang="zh-CN" id="ph1037mcpsimp"><a name="ph1037mcpsimp"></a><a name="ph1037mcpsimp"></a>只支持</span>OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输入。</li><li><span xml:lang="zh-CN" id="ph1039mcpsimp"><a name="ph1039mcpsimp"></a><a name="ph1039mcpsimp"></a>只支持</span>LINEAR<span xml:lang="zh-CN" id="ph1040mcpsimp"><a name="ph1040mcpsimp"></a><a name="ph1040mcpsimp"></a>格式。</span></li><li xml:lang="zh-CN">只支持非压缩图像。</li><li xml:lang="zh-CN">只支持8Bit的YUV数据。</li></ul>
</td>
</tr>
<tr id="row1043mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p1045mcpsimp"><a name="p1045mcpsimp"></a><a name="p1045mcpsimp"></a>输入图像分辨率</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><a name="ul1047mcpsimp"></a><a name="ul1047mcpsimp"></a><ul id="ul1047mcpsimp"><li xml:lang="zh-CN">最小支持：鱼眼校正为1280x720，固定角度旋转为360x360，任意角度旋转为480x360，PMF矫正为480x360。</li><li xml:lang="zh-CN">最大支持：8192x8192。</li><li xml:lang="zh-CN">宽度和高度均为2像素对齐，stride 16对齐。</li></ul>
</td>
</tr>
<tr id="row1052mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p1054mcpsimp"><a name="p1054mcpsimp"></a><a name="p1054mcpsimp"></a>视频输出数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><a name="ul1056mcpsimp"></a><a name="ul1056mcpsimp"></a><ul id="ul1056mcpsimp"><li><span xml:lang="zh-CN" id="ph1058mcpsimp"><a name="ph1058mcpsimp"></a><a name="ph1058mcpsimp"></a>只支持</span>OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输出。</li><li><span xml:lang="zh-CN" id="ph1061mcpsimp"><a name="ph1061mcpsimp"></a><a name="ph1061mcpsimp"></a>只支持</span>LINEAR格式<span xml:lang="zh-CN" id="ph1062mcpsimp"><a name="ph1062mcpsimp"></a><a name="ph1062mcpsimp"></a>。</span></li><li xml:lang="zh-CN">支持非压缩和<span xml:lang="en-US" id="ph1064mcpsimp"><a name="ph1064mcpsimp"></a><a name="ph1064mcpsimp"></a>段压缩</span>图像。</li><li xml:lang="zh-CN">只支持8Bit的YUV数据。</li></ul>
</td>
</tr>
<tr id="row1066mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p1068mcpsimp"><a name="p1068mcpsimp"></a><a name="p1068mcpsimp"></a>输出图像分辨率</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><a name="ul1070mcpsimp"></a><a name="ul1070mcpsimp"></a><ul id="ul1070mcpsimp"><li xml:lang="zh-CN">最小支持：鱼眼校正为640x360，固定角度旋转为360x360，任意角度旋转为480x360，PMF矫正为480x360。</li><li xml:lang="zh-CN">最大支持：8192x8192。</li><li>高度为2像素对齐；非压缩输出时宽为2像素对齐，压缩输出时为256对齐，或等于输出宽大小减去该校正区域的x坐标<span xml:lang="zh-CN" id="ph1075mcpsimp"><a name="ph1075mcpsimp"></a><a name="ph1075mcpsimp"></a>。stride 16对齐。</span></li></ul>
</td>
</tr>
<tr id="row1076mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p1078mcpsimp"><a name="p1078mcpsimp"></a><a name="p1078mcpsimp"></a>缩放能力</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p1080mcpsimp"><a name="p1080mcpsimp"></a><a name="p1080mcpsimp"></a>各功能支持缩放</p>
</td>
</tr>
<tr id="row1081mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p1083mcpsimp"><a name="p1083mcpsimp"></a><a name="p1083mcpsimp"></a>性能</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p1085mcpsimp"><a name="p1085mcpsimp"></a><a name="p1085mcpsimp"></a>16M@30fps</p>
</td>
</tr>
</tbody>
</table>

>![](public_sys-resources/icon-note.gif) **说明：** 
>鱼眼矫正模式中，不同配置下处理的计算量和带宽差别较大，非典型配置可能会出现性能不足的情况。
>GDC做像素格式转换，仅支持OT\_PIXEL\_FORMAT\_YVU\_SEMIPLANAR\_420或OT\_PIXEL\_FORMAT\_YUV\_SEMIPLANAR\_420转成OT\_PIXEL\_FORMAT\_YUV\_400。

## 鱼眼标定工具库<a name="ZH-CN_TOPIC_0000002441657577"></a>

根据鱼眼镜头获取鱼眼原图自动确定鱼眼镜头的位置特性（偏移、半径）。该标定工具库需要配合鱼眼镜头使用。

鱼眼标定工具库的详细说明和API参考请查看《GDC调试指南》。

## API参考<a name="ZH-CN_TOPIC_0000002408258230"></a>

用户需要调用VI模块或VPSS模块中提供的以下MPI接口打开或关闭功能，并设置GDC功能相关属性，具体请参考“视频输入”章节和“视频处理子系统”章节。

-   ss\_mpi\_vi\_set\_pipe\_fisheye\_cfg：设置VI PIPE对应的鱼眼镜头LMF参数配置。
-   ss\_mpi\_vi\_get\_pipe\_fisheye\_cfg：获取VI PIPE对应的鱼眼镜头LMF参数配置。
-   ss\_mpi\_vi\_set\_chn\_fisheye：设置VI通道对应的鱼眼属性。
-   ss\_mpi\_vi\_get\_chn\_fisheye：获取VI通道对应的鱼眼属性。
-   ss\_mpi\_vi\_set\_chn\_spread\_attr：设置VI通道展宽属性。
-   ss\_mpi\_vi\_get\_chn\_spread\_attr：获取VI通道展宽属性。
-   ss\_mpi\_vi\_set\_chn\_ldc\_attr：设置VI镜头畸变校正（LDC）属性。
-   ss\_mpi\_vi\_get\_chn\_ldc\_attr：获取VI镜头畸变校正（LDC）属性。
-   ss\_mpi\_vi\_ldc\_pos\_query\_dst\_to\_src：根据镜头畸变校正（LDC）的输出图像坐标点查找输入图像的坐标点。
-   ss\_mpi\_vi\_ldc\_pos\_query\_src\_to\_dst：根据镜头畸变校正（LDC）的输入图像坐标点查找输出图像的坐标点。
-   ss\_mpi\_vi\_set\_chn\_rotation：设置VI图像旋转属性。
-   ss\_mpi\_vi\_get\_chn\_rotation：获取VI图像旋转属性。
-   ss\_mpi\_vi\_fisheye\_pos\_query\_dst\_to\_src：根据鱼眼校正输出图像坐标点查找源图像坐标点。
-   ss\_mpi\_vpss\_set\_grp\_fisheye\_cfg：设置VPSS GROUP鱼眼镜头LMF参数。
-   ss\_mpi\_vpss\_get\_grp\_fisheye\_cfg：获取VPSS GROUP鱼眼镜头LMF参数。
-   ss\_mpi\_vpss\_set\_chn\_fisheye：设置VPSS物理通道鱼眼属性。
-   ss\_mpi\_vpss\_get\_chn\_fisheye：获取VPSS物理通道鱼眼属性。
-   ss\_mpi\_vpss\_set\_chn\_spread\_attr：设置VPSS物理通道展宽属性。
-   ss\_mpi\_vpss\_get\_chn\_spread\_attr：获取VPSS物理通道展宽属性。
-   ss\_mpi\_vpss\_set\_chn\_ldc\_attr：设置VPSS镜头畸变校正（LDC）属性。
-   ss\_mpi\_vpss\_get\_chn\_ldc\_attr：获取VPSS镜头畸变校正（LDC）属性。
-   ss\_mpi\_vpss\_ldc\_pos\_query\_dst\_to\_src：根据镜头畸变校正（LDC）的输出图像坐标点查找输入图像的坐标点。
-   ss\_mpi\_vpss\_ldc\_pos\_query\_src\_to\_dst：根据镜头畸变校正（LDC）的输入图像坐标点查找输出图像的坐标点。
-   ss\_mpi\_vpss\_set\_chn\_rotation：设置VPSS物理通道旋转属性。
-   ss\_mpi\_vpss\_get\_chn\_rotation：获取VPSS物理通道旋转属性。
-   ss\_mpi\_vpss\_fisheye\_pos\_query\_dst\_to\_src：根据鱼眼矫正输出图像坐标点查找源图像坐标点。

各MPI接口的具体用法请参考VI和VPSS章节中的MPI接口描述、注意事项及示例。

该功能模块为用户提供以下MPI：

-   [ss\_mpi\_gdc\_begin\_job](ss_mpi_gdc_begin_job.md)：启动一个job。
-   [ss\_mpi\_gdc\_set\_cfg](ss_mpi_gdc_set_cfg.md)：设置鱼眼镜头的配置。
-   [ss\_mpi\_gdc\_add\_correction\_task](ss_mpi_gdc_add_correction_task.md)：往一个已经开启的job里添加鱼眼校正task。
-   [ss\_mpi\_gdc\_add\_correction\_ex\_task](ss_mpi_gdc_add_correction_ex_task.md)：往一个已经开启的job里添加鱼眼校正task（XY模式）或做黑边检测。
-   [ss\_mpi\_gdc\_add\_pmf\_task](ss_mpi_gdc_add_pmf_task.md): 往一个已经开启的job里添加PMF校正task.
-   [ss\_mpi\_gdc\_end\_job](ss_mpi_gdc_end_job.md)：提交一个job，GDC开始对这个job进行处理。
-   [ss\_mpi\_gdc\_cancel\_job](ss_mpi_gdc_cancel_job.md)：取消一个job。
-   [ss\_mpi\_gdc\_fisheye\_pos\_query\_dst\_to\_src](ss_mpi_gdc_fisheye_pos_query_dst_to_src.md)：根据鱼眼校正输出图像坐标点查找源图像坐标点。
-   [ss\_mpi\_gdc\_fisheye\_multi\_pos\_query\_dst\_to\_src](ss_mpi_gdc_fisheye_multi_pos_query_dst_to_src.md)：根据鱼眼校正输出图像坐标点查找源图像坐标点，支持多点反向查询。
-   [ss\_mpi\_gdc\_fisheye\_multi\_pos\_query\_src\_to\_dst](ss_mpi_gdc_fisheye_multi_pos_query_src_to_dst.md)：根据源图像坐标点查找鱼眼校正输出图像坐标点，支持多点正向查询。
-   [ss\_mpi\_gdc\_set\_dsp\_lut\_cfg](ss_mpi_gdc_set_dsp_lut_cfg.md)：设置dsp lut功能配置。
-   [ss\_mpi\_gdc\_get\_dsp\_lut\_cfg](ss_mpi_gdc_get_dsp_lut_cfg.md)：获取dsp lut功能配置。













### ss\_mpi\_gdc\_begin\_job<a name="ZH-CN_TOPIC_0000002441697445"></a>

【描述】

启动一个job。

【语法】

```
td_s32 ss_mpi_gdc_begin_job(ot_gdc_handle *handle);
```

【参数】

<a name="table1151mcpsimp"></a>
<table><thead align="left"><tr id="row1157mcpsimp"><th class="cellrowborder" valign="top" width="20%" id="mcps1.1.4.1.1"><p id="p1159mcpsimp"><a name="p1159mcpsimp"></a><a name="p1159mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="64%" id="mcps1.1.4.1.2"><p id="p1161mcpsimp"><a name="p1161mcpsimp"></a><a name="p1161mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p1163mcpsimp"><a name="p1163mcpsimp"></a><a name="p1163mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1165mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.1 "><p id="p1167mcpsimp"><a name="p1167mcpsimp"></a><a name="p1167mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.4.1.2 "><p id="p1169mcpsimp"><a name="p1169mcpsimp"></a><a name="p1169mcpsimp"></a>用以返回handle。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1171mcpsimp"><a name="p1171mcpsimp"></a><a name="p1171mcpsimp"></a>输出</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1173mcpsimp"></a>
<table><thead align="left"><tr id="row1178mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1180mcpsimp"><a name="p1180mcpsimp"></a><a name="p1180mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1182mcpsimp"><a name="p1182mcpsimp"></a><a name="p1182mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1184mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1186mcpsimp"><a name="p1186mcpsimp"></a><a name="p1186mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1188mcpsimp"><a name="p1188mcpsimp"></a><a name="p1188mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1189mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1191mcpsimp"><a name="p1191mcpsimp"></a><a name="p1191mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1193mcpsimp"><a name="p1193mcpsimp"></a><a name="p1193mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h
-   库文件：libss\_mpi.a

【注意】

-   可一次开启多个job，但必须判断ss\_mpi\_gdc\_begin\_job函数返回成功后才能使用返回的handle。
-   handle不能为空指针或非法指针。

### ss\_mpi\_gdc\_set\_cfg<a name="ZH-CN_TOPIC_0000002441657517"></a>

【描述】

设置鱼眼镜头的配置。

【语法】

```
td_s32 ss_mpi_gdc_set_cfg(ot_gdc_handle handle, const ot_gdc_fisheye_job_cfg *job_cfg);
```

【参数】

<a name="table1213mcpsimp"></a>
<table><thead align="left"><tr id="row1219mcpsimp"><th class="cellrowborder" valign="top" width="19%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1221mcpsimp"><a name="p1221mcpsimp"></a><a name="p1221mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="66%" id="mcps1.1.4.1.2"><p id="p1223mcpsimp"><a name="p1223mcpsimp"></a><a name="p1223mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="15%" id="mcps1.1.4.1.3"><p id="p1225mcpsimp"><a name="p1225mcpsimp"></a><a name="p1225mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1227mcpsimp"><td class="cellrowborder" valign="top" width="19%" headers="mcps1.1.4.1.1 "><p id="p1229mcpsimp"><a name="p1229mcpsimp"></a><a name="p1229mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="66%" headers="mcps1.1.4.1.2 "><p id="p1231mcpsimp"><a name="p1231mcpsimp"></a><a name="p1231mcpsimp"></a>表示一个已经开启的job的handle。</p>
</td>
<td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.3 "><p id="p1233mcpsimp"><a name="p1233mcpsimp"></a><a name="p1233mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1234mcpsimp"><td class="cellrowborder" valign="top" width="19%" headers="mcps1.1.4.1.1 "><p id="p1236mcpsimp"><a name="p1236mcpsimp"></a><a name="p1236mcpsimp"></a>job_cfg</p>
</td>
<td class="cellrowborder" valign="top" width="66%" headers="mcps1.1.4.1.2 "><p id="p1238mcpsimp"><a name="p1238mcpsimp"></a><a name="p1238mcpsimp"></a>Job配置指针，包括LMF系数。</p>
</td>
<td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.3 "><p id="p1240mcpsimp"><a name="p1240mcpsimp"></a><a name="p1240mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1242mcpsimp"></a>
<table><thead align="left"><tr id="row1247mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1249mcpsimp"><a name="p1249mcpsimp"></a><a name="p1249mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1251mcpsimp"><a name="p1251mcpsimp"></a><a name="p1251mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1253mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1255mcpsimp"><a name="p1255mcpsimp"></a><a name="p1255mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1257mcpsimp"><a name="p1257mcpsimp"></a><a name="p1257mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1258mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1260mcpsimp"><a name="p1260mcpsimp"></a><a name="p1260mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1262mcpsimp"><a name="p1262mcpsimp"></a><a name="p1262mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h、ot\_common\_video.h
-   库文件：libss\_mpi.a

【注意】

LMF系数的物理地址必须16对齐。

【举例】

请参见[ss\_mpi\_gdc\_cancel\_job](ss_mpi_gdc_cancel_job.md)的举例。

### ss\_mpi\_gdc\_add\_correction\_task<a name="ZH-CN_TOPIC_0000002441657509"></a>

【描述】

往一个已经开启的job里添加鱼眼校正task。

【语法】

```
td_s32 ss_mpi_gdc_add_correction_task(ot_gdc_handle handle, const ot_gdc_task_attr *task, const ot_fisheye_attr *fisheye_attr);
```

【参数】

<a name="table1286mcpsimp"></a>
<table><thead align="left"><tr id="row1292mcpsimp"><th class="cellrowborder" valign="top" width="16.160000000000004%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1294mcpsimp"><a name="p1294mcpsimp"></a><a name="p1294mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="68.69000000000001%" id="mcps1.1.4.1.2"><p id="p1296mcpsimp"><a name="p1296mcpsimp"></a><a name="p1296mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="15.150000000000002%" id="mcps1.1.4.1.3"><p id="p1298mcpsimp"><a name="p1298mcpsimp"></a><a name="p1298mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1300mcpsimp"><td class="cellrowborder" valign="top" width="16.160000000000004%" headers="mcps1.1.4.1.1 "><p id="p1302mcpsimp"><a name="p1302mcpsimp"></a><a name="p1302mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="68.69000000000001%" headers="mcps1.1.4.1.2 "><p id="p1304mcpsimp"><a name="p1304mcpsimp"></a><a name="p1304mcpsimp"></a>表示一个已经开启的job的handle。</p>
</td>
<td class="cellrowborder" valign="top" width="15.150000000000002%" headers="mcps1.1.4.1.3 "><p id="p1306mcpsimp"><a name="p1306mcpsimp"></a><a name="p1306mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1307mcpsimp"><td class="cellrowborder" valign="top" width="16.160000000000004%" headers="mcps1.1.4.1.1 "><p id="p1309mcpsimp"><a name="p1309mcpsimp"></a><a name="p1309mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="68.69000000000001%" headers="mcps1.1.4.1.2 "><p id="p1311mcpsimp"><a name="p1311mcpsimp"></a><a name="p1311mcpsimp"></a>GDC task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="15.150000000000002%" headers="mcps1.1.4.1.3 "><p id="p1313mcpsimp"><a name="p1313mcpsimp"></a><a name="p1313mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1314mcpsimp"><td class="cellrowborder" valign="top" width="16.160000000000004%" headers="mcps1.1.4.1.1 "><p xml:lang="sv-SE" id="p1316mcpsimp"><a name="p1316mcpsimp"></a><a name="p1316mcpsimp"></a>fisheye_attr</p>
</td>
<td class="cellrowborder" valign="top" width="68.69000000000001%" headers="mcps1.1.4.1.2 "><p id="p1318mcpsimp"><a name="p1318mcpsimp"></a><a name="p1318mcpsimp"></a>FISHEYE校正区域属性配置指针</p>
</td>
<td class="cellrowborder" valign="top" width="15.150000000000002%" headers="mcps1.1.4.1.3 "><p id="p1320mcpsimp"><a name="p1320mcpsimp"></a><a name="p1320mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1322mcpsimp"></a>
<table><thead align="left"><tr id="row1327mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1329mcpsimp"><a name="p1329mcpsimp"></a><a name="p1329mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1331mcpsimp"><a name="p1331mcpsimp"></a><a name="p1331mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1333mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1335mcpsimp"><a name="p1335mcpsimp"></a><a name="p1335mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1337mcpsimp"><a name="p1337mcpsimp"></a><a name="p1337mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1338mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1340mcpsimp"><a name="p1340mcpsimp"></a><a name="p1340mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1342mcpsimp"><a name="p1342mcpsimp"></a><a name="p1342mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h、ot\_common\_video.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的Fisheye矫正job必须是已经开启的job。
-   fisheye\_attr中的lmf\_en参数为1时，必须在调用ss\_mpi\_gdc\_set\_cfg接口后才能调用此接口。
-   task属性必须满足GDC的能力。
-   各区域不支持做OT\_FISHEYE\_VIEW\_MODE\_NO\_TRANS任务。
-   此接口不支持添加背景色功能，即bg\_color\_en参数不能设置为TRUE；如果需要添加背景色，建议在添加鱼眼矫正任务之前，调用VGS的接口ss\_mpi\_vgs\_add\_cover\_task对需要添加背景色区域打上背景色。
-   输出图像为压缩格式时，校正区域数只能设置为1，且设置的区域需要完全覆盖输出图像。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_gdc\_end\_job](ss_mpi_gdc_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_gdc\_cancel\_job](ss_mpi_gdc_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   鱼眼校正支持三种校正模式，360°全景模式，180°全景模式，normal模式。360全景模式支持地装和顶装；180°全景模式支持壁装；normal模式支持地装，顶装，壁装。

【举例】

请参见[ss\_mpi\_gdc\_cancel\_job](ss_mpi_gdc_cancel_job.md)的举例。

### ss\_mpi\_gdc\_add\_correction\_ex\_task<a name="ZH-CN_TOPIC_0000002408098326"></a>

【描述】

往一个已经开启的job里添加鱼眼校正task（XY模式）或做黑边检测。

【语法】

```
td_s32 ss_mpi_gdc_add_correction_ex_task(ot_gdc_handle h_handle, const ot_gdc_task_attr *task, const ot_fisheye_attr_ex *fisheye_attrr_ex, td_bool check_mode);
```

【参数】

<a name="table1375mcpsimp"></a>
<table><thead align="left"><tr id="row1381mcpsimp"><th class="cellrowborder" valign="top" width="23%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1383mcpsimp"><a name="p1383mcpsimp"></a><a name="p1383mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="61%" id="mcps1.1.4.1.2"><p id="p1385mcpsimp"><a name="p1385mcpsimp"></a><a name="p1385mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p1387mcpsimp"><a name="p1387mcpsimp"></a><a name="p1387mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1389mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1391mcpsimp"><a name="p1391mcpsimp"></a><a name="p1391mcpsimp"></a>h_handle</p>
</td>
<td class="cellrowborder" valign="top" width="61%" headers="mcps1.1.4.1.2 "><p id="p1393mcpsimp"><a name="p1393mcpsimp"></a><a name="p1393mcpsimp"></a>表示一个已经开启的job的handle。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1395mcpsimp"><a name="p1395mcpsimp"></a><a name="p1395mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1396mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1398mcpsimp"><a name="p1398mcpsimp"></a><a name="p1398mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="61%" headers="mcps1.1.4.1.2 "><p id="p1400mcpsimp"><a name="p1400mcpsimp"></a><a name="p1400mcpsimp"></a>GDC task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1402mcpsimp"><a name="p1402mcpsimp"></a><a name="p1402mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1403mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1405mcpsimp"><a name="p1405mcpsimp"></a><a name="p1405mcpsimp"></a>fisheye_attrr_ex</p>
</td>
<td class="cellrowborder" valign="top" width="61%" headers="mcps1.1.4.1.2 "><p id="p1407mcpsimp"><a name="p1407mcpsimp"></a><a name="p1407mcpsimp"></a>FISHEYE校正区域属性配置指针(XY模式)。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1409mcpsimp"><a name="p1409mcpsimp"></a><a name="p1409mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1410mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1412mcpsimp"><a name="p1412mcpsimp"></a><a name="p1412mcpsimp"></a>check_mode</p>
</td>
<td class="cellrowborder" valign="top" width="61%" headers="mcps1.1.4.1.2 "><p id="p1414mcpsimp"><a name="p1414mcpsimp"></a><a name="p1414mcpsimp"></a>检查模式。</p>
<a name="ul1415mcpsimp"></a><a name="ul1415mcpsimp"></a><ul id="ul1415mcpsimp"><li>取值为TD_TRUE时，为纯黑边检查模式。</li><li>取值为TD_FALSE时，为校正模式。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1419mcpsimp"><a name="p1419mcpsimp"></a><a name="p1419mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1421mcpsimp"></a>
<table><thead align="left"><tr id="row1426mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1428mcpsimp"><a name="p1428mcpsimp"></a><a name="p1428mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1430mcpsimp"><a name="p1430mcpsimp"></a><a name="p1430mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1432mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1434mcpsimp"><a name="p1434mcpsimp"></a><a name="p1434mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1436mcpsimp"><a name="p1436mcpsimp"></a><a name="p1436mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1437mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1439mcpsimp"><a name="p1439mcpsimp"></a><a name="p1439mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1441mcpsimp"><a name="p1441mcpsimp"></a><a name="p1441mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h、ot\_common\_video.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的Fisheye矫正job必须是已经开启的job。
-   在非检查模式下，即check\_mode为FALSE，不支持同时开启LMF功能。
-   task属性必须满足GDC的能力。
-   各区域不支持做OT\_FISHEYE\_VIEW\_MODE\_NO\_TRANS任务。
-   在非检查模式下，即check\_mode为FALSE，此接口不支持添加背景色功能，即bg\_color\_en参数不能设置为TRUE；如果需要添加背景色，建议在添加鱼眼矫正任务之前，调用VGS的接口ss\_mpi\_vgs\_add\_cover\_task对需要添加背景色区域打上背景色。
-   输出图像为压缩格式时，校正区域数只能设置为1，且设置的区域需要完全覆盖输出图像。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_gdc\_end\_job](ss_mpi_gdc_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_gdc\_cancel\_job](ss_mpi_gdc_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   只支持Normal模式下的黑边检查或者XY模式矫正。
-   当check\_mode为TD\_TRUE时：
    -   只会检查参数 task-\>img\_in.video\_frame.width，task-\>img\_in.video\_frame.height，task-\>img\_out.video\_frame.width，task-\>img\_out.video\_frame.height、hor\_offset、ver\_offset、mount\_mode、rgn\_num、out\_radius、in\_radius、x、y、hor\_zoom、ver\_zoom、out\_rect.width、out\_rect.height的合法性，其他参数不做合法范围检查。当检测到黑边或以上参数非法时，均返回错误码 ；当无黑边及以上参数合法时返回成功。
    -   无论返回值是什么，这个任务都不会添加到任务队列中，后续不能提交任务，否则会报错。

-   当check\_mode为TD\_FALSE时：

    对全部参数做合法性检查，当检测到黑边或非法参数时，返回错误码；当无黑边及参数合法时返回成功，并且添加此任务到任务队列中，为后面提交此任务做准备。

【举例】

无。

### ss\_mpi\_gdc\_add\_pmf\_task<a name="ZH-CN_TOPIC_0000002441657697"></a>

【描述】

往一个已经开启的job里添加PMF校正task。

【语法】

```
td_s32 ss_mpi_gdc_add_pmf_task(ot_gdc_handle handle, const ot_gdc_task_attr *task, const ot_gdc_pmf_attr *gdc_pmf_attr);
```

【参数】

<a name="table1478mcpsimp"></a>
<table><thead align="left"><tr id="row1484mcpsimp"><th class="cellrowborder" valign="top" width="18%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1486mcpsimp"><a name="p1486mcpsimp"></a><a name="p1486mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="67%" id="mcps1.1.4.1.2"><p id="p1488mcpsimp"><a name="p1488mcpsimp"></a><a name="p1488mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="15%" id="mcps1.1.4.1.3"><p id="p1490mcpsimp"><a name="p1490mcpsimp"></a><a name="p1490mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1492mcpsimp"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.1.4.1.1 "><p id="p1494mcpsimp"><a name="p1494mcpsimp"></a><a name="p1494mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="67%" headers="mcps1.1.4.1.2 "><p id="p1496mcpsimp"><a name="p1496mcpsimp"></a><a name="p1496mcpsimp"></a>表示一个已经开启的job的handle。</p>
</td>
<td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.3 "><p id="p1498mcpsimp"><a name="p1498mcpsimp"></a><a name="p1498mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1499mcpsimp"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.1.4.1.1 "><p id="p1501mcpsimp"><a name="p1501mcpsimp"></a><a name="p1501mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="67%" headers="mcps1.1.4.1.2 "><p id="p1503mcpsimp"><a name="p1503mcpsimp"></a><a name="p1503mcpsimp"></a>GDC task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.3 "><p id="p1505mcpsimp"><a name="p1505mcpsimp"></a><a name="p1505mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1506mcpsimp"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.1.4.1.1 "><p id="p1508mcpsimp"><a name="p1508mcpsimp"></a><a name="p1508mcpsimp"></a>gdc_pmf_attr</p>
</td>
<td class="cellrowborder" valign="top" width="67%" headers="mcps1.1.4.1.2 "><p id="p1510mcpsimp"><a name="p1510mcpsimp"></a><a name="p1510mcpsimp"></a>PMF参数的结构体指针</p>
</td>
<td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.3 "><p id="p1512mcpsimp"><a name="p1512mcpsimp"></a><a name="p1512mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1514mcpsimp"></a>
<table><thead align="left"><tr id="row1519mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1521mcpsimp"><a name="p1521mcpsimp"></a><a name="p1521mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1523mcpsimp"><a name="p1523mcpsimp"></a><a name="p1523mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1525mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1527mcpsimp"><a name="p1527mcpsimp"></a><a name="p1527mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1529mcpsimp"><a name="p1529mcpsimp"></a><a name="p1529mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1530mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1532mcpsimp"><a name="p1532mcpsimp"></a><a name="p1532mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1534mcpsimp"><a name="p1534mcpsimp"></a><a name="p1534mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h、ot\_common\_video.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的PMF矫正job必须是已经开启的job。
-   gdc\_pmf\_attr中的PMF参数需要满足的条件参见《GDC 调试指南》中的说明。
-   task属性必须满足GDC的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_gdc\_end\_job](ss_mpi_gdc_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_gdc\_cancel\_job](ss_mpi_gdc_cancel_job.md)。接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。

【举例】

无。

### ss\_mpi\_gdc\_end\_job<a name="ZH-CN_TOPIC_0000002441657561"></a>

【描述】

提交一个job，GDC开始对这个job进行处理。

【语法】

```
td_s32 ss_mpi_gdc_end_job(ot_gdc_handle handle);
```

【参数】

<a name="table1559mcpsimp"></a>
<table><thead align="left"><tr id="row1565mcpsimp"><th class="cellrowborder" valign="top" width="20%" id="mcps1.1.4.1.1"><p id="p1567mcpsimp"><a name="p1567mcpsimp"></a><a name="p1567mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="64%" id="mcps1.1.4.1.2"><p id="p1569mcpsimp"><a name="p1569mcpsimp"></a><a name="p1569mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p1571mcpsimp"><a name="p1571mcpsimp"></a><a name="p1571mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1573mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.1 "><p id="p1575mcpsimp"><a name="p1575mcpsimp"></a><a name="p1575mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.4.1.2 "><p id="p1577mcpsimp"><a name="p1577mcpsimp"></a><a name="p1577mcpsimp"></a>表示一个已经开启的job的handle。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1579mcpsimp"><a name="p1579mcpsimp"></a><a name="p1579mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1581mcpsimp"></a>
<table><thead align="left"><tr id="row1586mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1588mcpsimp"><a name="p1588mcpsimp"></a><a name="p1588mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1590mcpsimp"><a name="p1590mcpsimp"></a><a name="p1590mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1592mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1594mcpsimp"><a name="p1594mcpsimp"></a><a name="p1594mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1596mcpsimp"><a name="p1596mcpsimp"></a><a name="p1596mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1597mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1599mcpsimp"><a name="p1599mcpsimp"></a><a name="p1599mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1601mcpsimp"><a name="p1601mcpsimp"></a><a name="p1601mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经开启的job。
-   如果此接口返回失败，必须调用[ss\_mpi\_gdc\_cancel\_job](ss_mpi_gdc_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。

【举例】

参见[ss\_mpi\_gdc\_begin\_job](ss_mpi_gdc_begin_job.md)。

### ss\_mpi\_gdc\_cancel\_job<a name="ZH-CN_TOPIC_0000002408098254"></a>

【描述】

取消一个job。

【语法】

```
td_s32 ss_mpi_gdc_cancel_job(ot_gdc_handle handle);
```

【参数】

<a name="table1624mcpsimp"></a>
<table><thead align="left"><tr id="row1630mcpsimp"><th class="cellrowborder" valign="top" width="21.21%" id="mcps1.1.4.1.1"><p id="p1632mcpsimp"><a name="p1632mcpsimp"></a><a name="p1632mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="62.629999999999995%" id="mcps1.1.4.1.2"><p id="p1634mcpsimp"><a name="p1634mcpsimp"></a><a name="p1634mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16.16%" id="mcps1.1.4.1.3"><p id="p1636mcpsimp"><a name="p1636mcpsimp"></a><a name="p1636mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1638mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p1640mcpsimp"><a name="p1640mcpsimp"></a><a name="p1640mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="62.629999999999995%" headers="mcps1.1.4.1.2 "><p id="p1642mcpsimp"><a name="p1642mcpsimp"></a><a name="p1642mcpsimp"></a>表示一个已经开启的job的handle。</p>
</td>
<td class="cellrowborder" valign="top" width="16.16%" headers="mcps1.1.4.1.3 "><p id="p1644mcpsimp"><a name="p1644mcpsimp"></a><a name="p1644mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1646mcpsimp"></a>
<table><thead align="left"><tr id="row1651mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1653mcpsimp"><a name="p1653mcpsimp"></a><a name="p1653mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1655mcpsimp"><a name="p1655mcpsimp"></a><a name="p1655mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1657mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1659mcpsimp"><a name="p1659mcpsimp"></a><a name="p1659mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1661mcpsimp"><a name="p1661mcpsimp"></a><a name="p1661mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1662mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1664mcpsimp"><a name="p1664mcpsimp"></a><a name="p1664mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1666mcpsimp"><a name="p1666mcpsimp"></a><a name="p1666mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h
-   库文件：libss\_mpi.a

【注意】

handle标识的job必须是已经开启的job。

【举例】

```
td_s32 ret = TD_SUCCESS;
ot_gdc_handle handle;
ot_gdc_task_attr task;
ot_fisheye_attr fisheye_attr;
ot_gdc_fisheye_job_cfg fisheye_job_cfg;
   …
ret = ss_mpi_gdc_begin_job(&handle);
if (ret != TD_SUCCESS) {
    goto handle_err;
}
   …
ret = ss_mpi_gdc_set_cfg(handle, &fisheye_job_cfg);
if (ret != TD_SUCCESS) {
    ss_mpi_gdc_cancel_job(handle);
    goto handle_err;
}
   …
ret = ss_mpi_gdc_add_correction_task (handle, &task, &fisheye_attr);
if (ret != TD_SUCCESS) {
    ss_mpi_gdc_cancel_job(handle);
    goto handle_err;
}
 
ret = ss_mpi_gdc_end_job(handle);
if (ret != TD_SUCCESS) {
    ss_mpi_gdc_cancel_job(handle);
    goto handle_err;
}
```

### ss\_mpi\_gdc\_fisheye\_pos\_query\_dst\_to\_src<a name="ZH-CN_TOPIC_0000002408258254"></a>

【描述】

根据鱼眼校正输出图像坐标点查找源图像坐标点。

【语法】

```
td_s32 ss_mpi_gdc_fisheye_pos_query_dst_to_src(const ot_gdc_fisheye_point_query_attr *fisheye_point_query_attr, const ot_video_frame_info *video_info, const ot_point *dst_point, ot_point *src_point);
```

【参数】

<a name="table1711mcpsimp"></a>
<table><thead align="left"><tr id="row1717mcpsimp"><th class="cellrowborder" valign="top" width="32%" id="mcps1.1.4.1.1"><p id="p1719mcpsimp"><a name="p1719mcpsimp"></a><a name="p1719mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="52%" id="mcps1.1.4.1.2"><p id="p1721mcpsimp"><a name="p1721mcpsimp"></a><a name="p1721mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p1723mcpsimp"><a name="p1723mcpsimp"></a><a name="p1723mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1725mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p1727mcpsimp"><a name="p1727mcpsimp"></a><a name="p1727mcpsimp"></a>fisheye_point_query_attr</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p1729mcpsimp"><a name="p1729mcpsimp"></a><a name="p1729mcpsimp"></a>鱼眼矫正坐标点查找属性参数</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1731mcpsimp"><a name="p1731mcpsimp"></a><a name="p1731mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1732mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p1734mcpsimp"><a name="p1734mcpsimp"></a><a name="p1734mcpsimp"></a>video_info</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p1736mcpsimp"><a name="p1736mcpsimp"></a><a name="p1736mcpsimp"></a>鱼眼输入图像帧信息</p>
<p id="ot_video_frame_info"><a name="ot_video_frame_info"></a><a name="ot_video_frame_info"></a>ot_video_frame_info请参考“系统控制”章节。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1738mcpsimp"><a name="p1738mcpsimp"></a><a name="p1738mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1739mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p1741mcpsimp"><a name="p1741mcpsimp"></a><a name="p1741mcpsimp"></a>dst_point</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p1743mcpsimp"><a name="p1743mcpsimp"></a><a name="p1743mcpsimp"></a>鱼眼校正图上需要查找映射关系的坐标点。</p>
<p id="p1744mcpsimp"><a name="p1744mcpsimp"></a><a name="p1744mcpsimp"></a>ot_point请参考“系统控制”章节</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1746mcpsimp"><a name="p1746mcpsimp"></a><a name="p1746mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1747mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p1749mcpsimp"><a name="p1749mcpsimp"></a><a name="p1749mcpsimp"></a>src_point</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p1751mcpsimp"><a name="p1751mcpsimp"></a><a name="p1751mcpsimp"></a>鱼眼原图上查找到的坐标点。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1753mcpsimp"><a name="p1753mcpsimp"></a><a name="p1753mcpsimp"></a>输出</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1755mcpsimp"></a>
<table><thead align="left"><tr id="row1760mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1762mcpsimp"><a name="p1762mcpsimp"></a><a name="p1762mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1764mcpsimp"><a name="p1764mcpsimp"></a><a name="p1764mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1766mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1768mcpsimp"><a name="p1768mcpsimp"></a><a name="p1768mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1770mcpsimp"><a name="p1770mcpsimp"></a><a name="p1770mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1771mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1773mcpsimp"><a name="p1773mcpsimp"></a><a name="p1773mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1775mcpsimp"><a name="p1775mcpsimp"></a><a name="p1775mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h、ot\_common\_video.h
-   库文件：libss\_mpi.a

【注意】

-   多区域时，每个区域的坐标点按照每个区域单独计算，不能按照拼接之后的图像来计算。
-   对于video\_info结构体的成员中，反向查找计算只用到了width和height两个成员，因此接口只对参数width和height范围做了检查。
-   对于fisheye\_point\_query\_attr结构体的成员fisheye\_attr，它的结构体成员中bg\_color\_en/bg\_color/out\_rect中的x和y值不影响反向查找结果，因此接口不对以上参数范围做检查。
-   支持360°全景模式、180°全景模式、Normal校正模式。

【举例】

无。

### ss\_mpi\_gdc\_fisheye\_multi\_pos\_query\_dst\_to\_src<a name="ZH-CN_TOPIC_0000002408258174"></a>

【描述】

根据鱼眼校正输出图像坐标点查找源图像坐标点，支持多点反向查询。

【语法】

```
td_s32 ss_mpi_gdc_fisheye_multi_pos_query_dst_to_src(const ot_gdc_fisheye_point_query_attr *fisheye_point_query_attr, const ot_video_frame_info *video_info, td_u32 num, const ot_point *dst, ot_point *src);
```

【参数】

<a name="table72622915246"></a>
<table><thead align="left"><tr id="row152616296241"><th class="cellrowborder" valign="top" width="32%" id="mcps1.1.4.1.1"><p id="p72622982411"><a name="p72622982411"></a><a name="p72622982411"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="52%" id="mcps1.1.4.1.2"><p id="p92619297246"><a name="p92619297246"></a><a name="p92619297246"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p1826152962415"><a name="p1826152962415"></a><a name="p1826152962415"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row926172910242"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p72692902414"><a name="p72692902414"></a><a name="p72692902414"></a>fisheye_point_query_attr</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p12652910242"><a name="p12652910242"></a><a name="p12652910242"></a>鱼眼矫正坐标点查找属性参数</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p726112982418"><a name="p726112982418"></a><a name="p726112982418"></a>输入</p>
</td>
</tr>
<tr id="row1726129112413"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p1026182913244"><a name="p1026182913244"></a><a name="p1026182913244"></a>video_info</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p62632911248"><a name="p62632911248"></a><a name="p62632911248"></a>鱼眼输入图像帧信息</p>
<p id="p22616292249"><a name="p22616292249"></a><a name="p22616292249"></a>ot_video_frame_info请参考“系统控制”章节。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p32602910248"><a name="p32602910248"></a><a name="p32602910248"></a>输入</p>
</td>
</tr>
<tr id="row1262810183612"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p1362911182613"><a name="p1362911182613"></a><a name="p1362911182613"></a>num</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p13629101818616"><a name="p13629101818616"></a><a name="p13629101818616"></a>鱼眼矫正坐标点的查找个数，最多200个。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1062919181866"><a name="p1062919181866"></a><a name="p1062919181866"></a>输入</p>
</td>
</tr>
<tr id="row172682914248"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p426172972415"><a name="p426172972415"></a><a name="p426172972415"></a>dst</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p5261429162419"><a name="p5261429162419"></a><a name="p5261429162419"></a>鱼眼校正图上需要查找映射关系的坐标点。</p>
<p id="p1426172912415"><a name="p1426172912415"></a><a name="p1426172912415"></a>ot_point请参考“系统控制”章节</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p18269291248"><a name="p18269291248"></a><a name="p18269291248"></a>输入</p>
</td>
</tr>
<tr id="row1026629152414"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p926202913247"><a name="p926202913247"></a><a name="p926202913247"></a>src</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p15271229172418"><a name="p15271229172418"></a><a name="p15271229172418"></a>鱼眼原图上查找到的坐标点。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p027142914249"><a name="p027142914249"></a><a name="p027142914249"></a>输出</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table9271629152415"></a>
<table><thead align="left"><tr id="row42714292240"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p02782932412"><a name="p02782932412"></a><a name="p02782932412"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1227429142410"><a name="p1227429142410"></a><a name="p1227429142410"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row2271829122418"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p102719293242"><a name="p102719293242"></a><a name="p102719293242"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p172720299249"><a name="p172720299249"></a><a name="p172720299249"></a>成功。</p>
</td>
</tr>
<tr id="row627129102413"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p52717299245"><a name="p52717299245"></a><a name="p52717299245"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p927202918246"><a name="p927202918246"></a><a name="p927202918246"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h、ot\_common\_video.h
-   库文件：libss\_mpi.a

【注意】

-   多区域时，每个区域的坐标点按照每个区域单独计算，不能按照拼接之后的图像来计算。
-   对于video\_info结构体的成员中，反向查找计算只用到了width和height两个成员，因此接口只对参数width和height范围做了检查。
-   对于fisheye\_point\_query\_attr结构体的成员fisheye\_attr，它的结构体成员中bg\_color\_en/bg\_color/out\_rect中的x和y值不影响反向查找结果，因此接口不对以上参数范围做检查。
-   支持360°全景模式、180°全景模式、Normal校正模式。

【举例】

```
td_s32 ret = TD_SUCCESS;
ot_gdc_fisheye_point_query_attr fisheye_point_query_attr;
ot_video_frame_info video_info;
td_u32 point_num = 160;
ot_point *dst = malloc(sizeof(ot_point) * point_num);
ot_point *src = malloc(sizeof(ot_point) * point_num);
if (dst == TD_NULL）{
    printf("malloc dst error!\n");
    return TD_FAILURE;
}
if (src == TD_NULL) {
    printf("malloc src error!\n");
    free(dst);
    dst = TD_NULL;
    return TD_FAILURE;
}
   …
ret = ss_mpi_gdc_fisheye_multi_pos_query_dst_to_src(&fisheye_point_query_attr, &video_info, point_num, dst, src);
if (ret != TD_SUCCESS) {
    goto free_mem;
}
   …
free_mem:
if (dst != TD_NULL) {
    free(dst);
    dst = TD_NULL;
}
if (src != TD_NULL) {
    free(src);
    src = TD_NULL;
}
return ret;
```

### ss\_mpi\_gdc\_fisheye\_multi\_pos\_query\_src\_to\_dst<a name="ZH-CN_TOPIC_0000002408258122"></a>

【描述】

根据源图像坐标点查找鱼眼校正输出图像坐标点，支持多点正向查询。

【语法】

```
td_s32 ss_mpi_gdc_fisheye_multi_pos_query_src_to_dst(const ot_gdc_fisheye_point_query_attr *fisheye_point_query_attr, const ot_video_frame_info *video_info, td_u32 num, const ot_point *src, ot_point *dst);
```

【参数】

<a name="table14641142261116"></a>
<table><thead align="left"><tr id="row3641522161112"><th class="cellrowborder" valign="top" width="32%" id="mcps1.1.4.1.1"><p id="p1564120229116"><a name="p1564120229116"></a><a name="p1564120229116"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="52%" id="mcps1.1.4.1.2"><p id="p1964152241116"><a name="p1964152241116"></a><a name="p1964152241116"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p1364142241110"><a name="p1364142241110"></a><a name="p1364142241110"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row66411522171113"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p46411221112"><a name="p46411221112"></a><a name="p46411221112"></a>fisheye_point_query_attr</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p96411022161116"><a name="p96411022161116"></a><a name="p96411022161116"></a>鱼眼矫正坐标点查找属性参数</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p56411522131110"><a name="p56411522131110"></a><a name="p56411522131110"></a>输入</p>
</td>
</tr>
<tr id="row764152271113"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p18642722121116"><a name="p18642722121116"></a><a name="p18642722121116"></a>video_info</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p8642132281110"><a name="p8642132281110"></a><a name="p8642132281110"></a>鱼眼输入图像帧信息</p>
<p id="p4642112261117"><a name="p4642112261117"></a><a name="p4642112261117"></a>ot_video_frame_info请参考“系统控制”章节。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p17642192211113"><a name="p17642192211113"></a><a name="p17642192211113"></a>输入</p>
</td>
</tr>
<tr id="row8642102212113"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p1164213229115"><a name="p1164213229115"></a><a name="p1164213229115"></a>num</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p1164282210115"><a name="p1164282210115"></a><a name="p1164282210115"></a>鱼眼矫正坐标点的查找个数，最多200个。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p4642112215115"><a name="p4642112215115"></a><a name="p4642112215115"></a>输入</p>
</td>
</tr>
<tr id="row1642722161119"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p1731915486124"><a name="p1731915486124"></a><a name="p1731915486124"></a>src</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p1642162241115"><a name="p1642162241115"></a><a name="p1642162241115"></a>鱼眼原图上需要查映射关系的坐标点。</p>
<p id="p76421822191119"><a name="p76421822191119"></a><a name="p76421822191119"></a>ot_point请参考“系统控制”章节</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p19642102210115"><a name="p19642102210115"></a><a name="p19642102210115"></a>输入</p>
</td>
</tr>
<tr id="row18642322101114"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.1.4.1.1 "><p id="p146422222111"><a name="p146422222111"></a><a name="p146422222111"></a>dst</p>
</td>
<td class="cellrowborder" valign="top" width="52%" headers="mcps1.1.4.1.2 "><p id="p664218223118"><a name="p664218223118"></a><a name="p664218223118"></a>鱼眼校正图上查找到的坐标点。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p126421522191119"><a name="p126421522191119"></a><a name="p126421522191119"></a>输出</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table15642112217118"></a>
<table><thead align="left"><tr id="row1964252201111"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1164272217118"><a name="p1164272217118"></a><a name="p1164272217118"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p5642522111116"><a name="p5642522111116"></a><a name="p5642522111116"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row16427225113"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p16421222161110"><a name="p16421222161110"></a><a name="p16421222161110"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p564214228119"><a name="p564214228119"></a><a name="p564214228119"></a>成功。</p>
</td>
</tr>
<tr id="row1364252271112"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p19642142291118"><a name="p19642142291118"></a><a name="p19642142291118"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p126423224117"><a name="p126423224117"></a><a name="p126423224117"></a>失败，参见<span xml:lang="fr-FR" id="ph183445934415"><a name="ph183445934415"></a><a name="ph183445934415"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h、ot\_common\_video.h
-   库文件：libss\_mpi.a

【注意】

-   多区域时，每个区域的坐标点按照每个区域单独计算，不能按照拼接之后的图像来计算。
-   对于video\_info结构体的成员中，正向查找计算只用到了width和height两个成员，因此接口只对参数width和height范围做了检查。
-   对于fisheye\_point\_query\_attr结构体的成员fisheye\_attr，它的结构体成员中bg\_color\_en/bg\_color/out\_rect中的x和y值不影响正向查找结果，因此接口不对以上参数范围做检查。
-   开启lmf功能场景下，不支持正向查找坐标点。
-   支持360°全景模式、180°全景模式、Normal校正模式。
-   180°全景模式下，fan\_strength只支持配置成0。
-   正向查找功能存在一定的计算精度误差，为了避免边界查找失败，当正向查找到的点坐标超出边缘两个像素以内，会主动近似成边缘的坐标。
-   360全景校正模式下，当内半径in\_radius配置为0的时候，由于鱼眼图的中心会拉伸变换成边界，所以鱼眼图中心点正向查找到的输出点位置将会是边界的中心，即顶装查询到的是下边界的中心点，地装查询到的是上边界的中心点。

【举例】

```
td_s32 ret = TD_SUCCESS;
ot_gdc_fisheye_point_query_attr fisheye_point_query_attr;
ot_video_frame_info video_info;
td_u32 point_num = 160;
ot_point *dst = malloc(sizeof(ot_point) * point_num);
ot_point *src = malloc(sizeof(ot_point) * point_num);
if (dst == TD_NULL）{
    printf("malloc dst error!\n");
    return TD_FAILURE;
}
if (src == TD_NULL) {
    printf("malloc src error!\n");
    free(dst);
    dst = TD_NULL;
    return TD_FAILURE;
}
   …
ret = ss_mpi_gdc_fisheye_multi_pos_query_src_to_dst(&fisheye_point_query_attr, &video_info, point_num, src, dst);
if (ret != TD_SUCCESS) {
    goto free_mem;
}
   …
free_mem:
if (dst != TD_NULL) {
    free(dst);
    dst = TD_NULL;
}
if (src != TD_NULL) {
    free(src);
    src = TD_NULL;
}
return ret;
```

### ss\_mpi\_gdc\_set\_dsp\_lut\_cfg<a name="ZH-CN_TOPIC_0000002441657653"></a>

【描述】

设置dsp lut功能配置。

【语法】

```
td_s32 ss_mpi_gdc_set_dsp_lut_cfg(const ot_gdc_dsp_lut_cfg *dsp_lut_cfg);
```

【参数】

<a name="table1213mcpsimp"></a>
<table><thead align="left"><tr id="row1219mcpsimp"><th class="cellrowborder" valign="top" width="19%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1221mcpsimp"><a name="p1221mcpsimp"></a><a name="p1221mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="47.75%" id="mcps1.1.4.1.2"><p id="p1223mcpsimp"><a name="p1223mcpsimp"></a><a name="p1223mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="33.25%" id="mcps1.1.4.1.3"><p id="p1225mcpsimp"><a name="p1225mcpsimp"></a><a name="p1225mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1227mcpsimp"><td class="cellrowborder" valign="top" width="19%" headers="mcps1.1.4.1.1 "><p id="p1229mcpsimp"><a name="p1229mcpsimp"></a><a name="p1229mcpsimp"></a>dsp_lut_cfg</p>
</td>
<td class="cellrowborder" valign="top" width="47.75%" headers="mcps1.1.4.1.2 "><p id="p1231mcpsimp"><a name="p1231mcpsimp"></a><a name="p1231mcpsimp"></a>dsp lut功能配置指针。</p>
</td>
<td class="cellrowborder" valign="top" width="33.25%" headers="mcps1.1.4.1.3 "><p id="p1233mcpsimp"><a name="p1233mcpsimp"></a><a name="p1233mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1242mcpsimp"></a>
<table><thead align="left"><tr id="row1247mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1249mcpsimp"><a name="p1249mcpsimp"></a><a name="p1249mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1251mcpsimp"><a name="p1251mcpsimp"></a><a name="p1251mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1253mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1255mcpsimp"><a name="p1255mcpsimp"></a><a name="p1255mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1257mcpsimp"><a name="p1257mcpsimp"></a><a name="p1257mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1258mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1260mcpsimp"><a name="p1260mcpsimp"></a><a name="p1260mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1262mcpsimp"><a name="p1262mcpsimp"></a><a name="p1262mcpsimp"></a>失败，参见<a href="错误码.md">错误码</a>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h
-   库文件：libss\_mpi.a

【注意】

-   仅SS928V100支持此接口。
-   当有lut任务或hybrid\_dis任务在处理时，设置is\_dsp\_lut\_support为FALSE时会返回失败。

【举例】

无

### ss\_mpi\_gdc\_get\_dsp\_lut\_cfg<a name="ZH-CN_TOPIC_0000002441697377"></a>

【描述】

获取dsp lut功能配置。

【语法】

```
td_s32 ss_mpi_gdc_get_dsp_lut_cfg(ot_gdc_dsp_lut_cfg *dsp_lut_cfg);
```

【参数】

<a name="table7807650913"></a>
<table><thead align="left"><tr id="row108071151697"><th class="cellrowborder" valign="top" width="19%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p48071156915"><a name="p48071156915"></a><a name="p48071156915"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="53.73%" id="mcps1.1.4.1.2"><p id="p4807757911"><a name="p4807757911"></a><a name="p4807757911"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="27.27%" id="mcps1.1.4.1.3"><p id="p118071651899"><a name="p118071651899"></a><a name="p118071651899"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row5807651592"><td class="cellrowborder" valign="top" width="19%" headers="mcps1.1.4.1.1 "><p id="p1480765898"><a name="p1480765898"></a><a name="p1480765898"></a>dsp_lut_cfg</p>
</td>
<td class="cellrowborder" valign="top" width="53.73%" headers="mcps1.1.4.1.2 "><p id="p4807851398"><a name="p4807851398"></a><a name="p4807851398"></a>dsp lut功能配置指针。</p>
</td>
<td class="cellrowborder" valign="top" width="27.27%" headers="mcps1.1.4.1.3 "><p id="p19807185795"><a name="p19807185795"></a><a name="p19807185795"></a>输出</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table168071657919"></a>
<table><thead align="left"><tr id="row5807457918"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p98071951195"><a name="p98071951195"></a><a name="p98071951195"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p18807751697"><a name="p18807751697"></a><a name="p18807751697"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row14807115790"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1880717518912"><a name="p1880717518912"></a><a name="p1880717518912"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1180715799"><a name="p1180715799"></a><a name="p1180715799"></a>成功。</p>
</td>
</tr>
<tr id="row108072510919"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p6807155290"><a name="p6807155290"></a><a name="p6807155290"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1086145055112"><a name="p1086145055112"></a><a name="p1086145055112"></a>失败，参见<a href="错误码.md">错误码</a>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_gdc.h、ss\_mpi\_gdc.h
-   库文件：libss\_mpi.a

【注意】

仅SS928V100支持此接口。

【举例】

无

## 数据类型<a name="ZH-CN_TOPIC_0000002408098282"></a>

GDC模块相关数据类型定义如下：

-   [ot\_gdc\_handle](ot_gdc_handle.md)：定义GDC JOB的句柄。
-   [OT\_GDC\_IP\_NUM](OT_GDC_IP_NUM.md)：定义GDC 的IP数量。
-   [OT\_GDC\_PRIVATE\_DATA\_NUM](OT_GDC_PRIVATE_DATA_NUM.md)：定义task相关私有数据的长度。
-   [ot\_gdc\_task\_attr](ot_gdc_task_attr.md)：定义GDC task的属性。
-   [OT\_FISHEYE\_LMF\_COEF\_NUM](OT_FISHEYE_LMF_COEF_NUM.md)：定义LMF参数个数。
-   [ot\_fisheye\_cfg](ot_fisheye_cfg.md)：定义FISHEYE的鱼眼镜头LMF参数配置。
-   [ot\_gdc\_fisheye\_job\_cfg](ot_gdc_fisheye_job_cfg.md)：定义FISHEYE任务对应的鱼眼镜头LMF参数配置。
-   [ot\_fisheye\_mount\_mode](ot_fisheye_mount_mode.md)：定义FISHEYE的安装模式。
-   [ot\_fisheye\_view\_mode](ot_fisheye_view_mode.md)：定义FISHEYE的校正模式。
-   [ot\_fisheye\_rgn\_attr](ot_fisheye_rgn_attr.md)：定义FISHEYE每个校正区域的属性配置。
-   [ot\_fisheye\_rgn\_attr\_ex](ot_fisheye_rgn_attr_ex.md)：定义FISHEYE每个校正区域的属性配置\(XY模式\)。
-   [OT\_GDC\_PMF\_COEF\_NUM](OT_GDC_PMF_COEF_NUM.md): PMF矫正系数的参数个数。
-   [ot\_gdc\_pmf\_attr](ot_gdc_pmf_attr.md)：定义PMF属性的相关配置。
-   [OT\_FISHEYE\_MAX\_RGN\_NUM](OT_FISHEYE_MAX_RGN_NUM.md)：定义FISHEYE支持的最大校正区域个数。
-   [ot\_fisheye\_attr](ot_fisheye_attr.md)：定义FISHEYE属性的相关配置。
-   [ot\_fisheye\_attr\_ex](ot_fisheye_attr_ex.md)：定义FISHEYE属性的相关配置。
-   [ot\_fisheye\_correction\_attr](ot_fisheye_correction_attr.md)：定义鱼眼矫正属性的相关配置。
-   [ot\_gdc\_fisheye\_point\_query\_attr](ot_gdc_fisheye_point_query_attr.md)：鱼眼矫正坐标点查找属性参数。
-   [OT\_FISHEYE\_MIN\_IN\_IMAGE\_WIDTH](OT_FISHEYE_MIN_IN_IMAGE_WIDTH.md)：定义鱼眼校正输入图像最小宽。
-   [OT\_FISHEYE\_MIN\_IN\_IMAGE\_HEIGHT](OT_FISHEYE_MIN_IN_IMAGE_HEIGHT.md)：定义鱼眼校正输入图像最小高度。
-   [OT\_FISHEYE\_MIN\_OUT\_IMAGE\_WIDTH](OT_FISHEYE_MIN_OUT_IMAGE_WIDTH.md)：定义鱼眼校正输出图像最小宽度。
-   [OT\_FISHEYE\_MIN\_OUT\_IMAGE\_HEIGHT](OT_FISHEYE_MIN_OUT_IMAGE_HEIGHT.md)：定义鱼眼校正输出图像最小高度。
-   [OT\_LDC\_MIN\_IMAGE\_WIDTH](OT_LDC_MIN_IMAGE_WIDTH.md)：定义LDC校正输入输出图像最小宽度。
-   [OT\_LDC\_MIN\_IMAGE\_HEIGHT](OT_LDC_MIN_IMAGE_HEIGHT.md)：定义LDC校正输入输出图像最小高度。
-   [OT\_SPREAD\_MIN\_IMAGE\_WIDTH](OT_SPREAD_MIN_IMAGE_WIDTH.md):  SPREAD输入输出图像最小宽度。
-   [OT\_SPREAD\_MIN\_IMAGE\_HEIGHT](OT_SPREAD_MIN_IMAGE_HEIGHT.md):  SPREAD输入输出图像最小高度。
-   [OT\_ROTATION\_EX\_MIN\_IMAGE\_WIDTH](OT_ROTATION_EX_MIN_IMAGE_WIDTH.md): 自由角度旋转输入输出图像最小宽度。
-   [OT\_ROTATION\_EX\_MIN\_IMAGE\_HEIGHT](OT_ROTATION_EX_MIN_IMAGE_HEIGHT.md): 自由角度旋转输入输出图像最小高度。
-   [OT\_PMF\_MIN\_IMAGE\_WIDTH](OT_PMF_MIN_IMAGE_WIDTH.md)：定义PMF校正输入输出图像最小宽度。
-   [OT\_PMF\_MIN\_IMAGE\_HEIGHT](OT_PMF_MIN_IMAGE_HEIGHT.md)：定义PMF校正输入输出图像最小高度。
-   [OT\_GDC\_MAX\_IMAGE\_WIDTH](OT_GDC_MAX_IMAGE_WIDTH.md)：定义GDC模块支持的图像最大宽度。
-   [OT\_GDC\_MAX\_IMAGE\_HEIGHT](OT_GDC_MAX_IMAGE_HEIGHT.md)：定义GDC模块支持的图像最大高度。
-   [OT\_GDC\_DSP\_MAX\_NUM](OT_GDC_DSP_MAX_NUM.md)：GDC模块支持绑定DSP核的最大个数。
-   [ot\_gdc\_dsp\_lut\_cfg](ot_gdc_dsp_lut_cfg.md)：定义DSP LUT参数配置。



































### ot\_gdc\_handle<a name="ZH-CN_TOPIC_0000002441697345"></a>

【说明】

定义GDC JOB的句柄。

【定义】

```
typedef td_u32 ot_gdc_handle;
```

【注意事项】

无。

【相关数据类型及接口】

无。

### OT\_GDC\_IP\_NUM<a name="ZH-CN_TOPIC_0000002408258082"></a>

【说明】

定义GDC 的IP数量。

【定义】

```
#define OT_GDC_IP_NUM 1
```

【注意事项】

无。

【相关数据类型及接口】

无。

### OT\_GDC\_PRIVATE\_DATA\_NUM<a name="ZH-CN_TOPIC_0000002441697489"></a>

【说明】

定义task相关私有数据的长度。

【定义】

```
#define OT_GDC_PRIVATE_DATA_NUM  4
```

【注意事项】

无。

【相关数据类型及接口】

[ot\_gdc\_task\_attr](#ot_gdc_task_attr)

### ot\_gdc\_task\_attr<a name="ZH-CN_TOPIC_0000002441697537"></a>

【说明】

定义GDC task的属性。

【定义】

```
typedef struct {
    ot_video_frame_info img_in; /* input picture */
    ot_video_frame_info img_out; /* output picture */
    td_u64 private_data[OT_GDC_PRIVATE_DATA_NUM]; /* RW; private data of task */
    td_u64 reserved; /* RW; debug information,state of current picture */
} ot_gdc_task_attr;
```

【成员】

<a name="table1929mcpsimp"></a>
<table><thead align="left"><tr id="row1934mcpsimp"><th class="cellrowborder" valign="top" width="22%" id="mcps1.1.3.1.1"><p id="p1936mcpsimp"><a name="p1936mcpsimp"></a><a name="p1936mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="78%" id="mcps1.1.3.1.2"><p id="p1938mcpsimp"><a name="p1938mcpsimp"></a><a name="p1938mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1940mcpsimp"><td class="cellrowborder" valign="top" width="22%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1942mcpsimp"><a name="p1942mcpsimp"></a><a name="p1942mcpsimp"></a>img_in</p>
</td>
<td class="cellrowborder" valign="top" width="78%" headers="mcps1.1.3.1.2 "><p id="p1944mcpsimp"><a name="p1944mcpsimp"></a><a name="p1944mcpsimp"></a>输入图像属性。</p>
</td>
</tr>
<tr id="row1945mcpsimp"><td class="cellrowborder" valign="top" width="22%" headers="mcps1.1.3.1.1 "><p id="p1947mcpsimp"><a name="p1947mcpsimp"></a><a name="p1947mcpsimp"></a>img_out</p>
</td>
<td class="cellrowborder" valign="top" width="78%" headers="mcps1.1.3.1.2 "><p id="p1949mcpsimp"><a name="p1949mcpsimp"></a><a name="p1949mcpsimp"></a>输出图像属性。</p>
</td>
</tr>
<tr id="row1950mcpsimp"><td class="cellrowborder" valign="top" width="22%" headers="mcps1.1.3.1.1 "><p id="p1952mcpsimp"><a name="p1952mcpsimp"></a><a name="p1952mcpsimp"></a>private_data</p>
</td>
<td class="cellrowborder" valign="top" width="78%" headers="mcps1.1.3.1.2 "><p id="p1954mcpsimp"><a name="p1954mcpsimp"></a><a name="p1954mcpsimp"></a>与task相关的私有数据，GDC不会使用和修改其中的数据。</p>
</td>
</tr>
<tr id="row1955mcpsimp"><td class="cellrowborder" valign="top" width="22%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1957mcpsimp"><a name="p1957mcpsimp"></a><a name="p1957mcpsimp"></a>reserved</p>
</td>
<td class="cellrowborder" valign="top" width="78%" headers="mcps1.1.3.1.2 "><p id="p1959mcpsimp"><a name="p1959mcpsimp"></a><a name="p1959mcpsimp"></a>保留项。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

输入和输出图像属性需要满足规定的属性。

【相关数据类型及接口】

[ot\_video\_frame\_info](ss_mpi_gdc_fisheye_pos_query_dst_to_src.md#ot_video_frame_info)

### OT\_FISHEYE\_LMF\_COEF\_NUM<a name="ZH-CN_TOPIC_0000002441657533"></a>

【说明】

鱼眼镜头LMF参数个数。

【定义】

```
#define OT_FISHEYE_LMF_COEF_NUM         128
```

【注意事项】

无。

【相关数据类型及接口】

[ot\_fisheye\_cfg](#ot_fisheye_cfg)

### ot\_fisheye\_cfg<a name="ZH-CN_TOPIC_0000002441697429"></a>

【说明】

定义FISHEYE的鱼眼镜头LMF参数配置。

【定义】

```
typedef struct {
    td_u16 lmf_coef[OT_FISHEYE_LMF_COEF_NUM]; /* RW;  LMF coefficient of gdc len */
} ot_fisheye_cfg;
```

【成员】

<a name="table1985mcpsimp"></a>
<table><thead align="left"><tr id="row1990mcpsimp"><th class="cellrowborder" valign="top" width="27%" id="mcps1.1.3.1.1"><p id="p1992mcpsimp"><a name="p1992mcpsimp"></a><a name="p1992mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="73%" id="mcps1.1.3.1.2"><p id="p1994mcpsimp"><a name="p1994mcpsimp"></a><a name="p1994mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1996mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p1998mcpsimp"><a name="p1998mcpsimp"></a><a name="p1998mcpsimp"></a>lmf_coef</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p2000mcpsimp"><a name="p2000mcpsimp"></a><a name="p2000mcpsimp"></a>鱼眼镜头LMF参数。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   如果在VI的ss\_mpi\_vi\_set\_chn\_fisheye接口中，[ot\_fisheye\_attr](ot_fisheye_attr.md)属性开启了LMF参数功能，则必须调用VI的ss\_mpi\_vi\_set\_pipe\_fisheye\_cfg设置LMF参数，否则进行鱼眼处理时会因为获取不到用户配置的LMF参数而报错。
-   如果在VPSS的ss\_mpi\_vpss\_set\_chn\_fisheye接口中，[ot\_fisheye\_attr](ot_fisheye_attr.md)属性开启了LMF参数功能，则必须调用VPSS的ss\_mpi\_vpss\_set\_grp\_fisheye\_cfg设置LMF参数，否则进行鱼眼处理时会因为获取不到用户配置的LMF参数而报错。
-   LMF参数要按照镜头厂商的推荐参数进行转换后再配置（正确的LMF参数符合lmf\_coef\[i+1\] ≥lmf\_coef\[i\]+5&& lmf\_coef \[i + 1\] <= lmf\_coef \[i\] + 31 && lmf\_coef \[57\] <1024< lmf\_coef \[85\] &&lmf\_coef\[0\] = 0的规律），如果配置的参数不满足此规律则会报错，如果配置的参数有误则可能出现总线错误等异常现象，如果没有镜头厂商提供的参数建议关闭LMF功能。

注：ss\_mpi\_vi\_set\_chn\_fisheye请具体请参考  “视频输入”  章节。

【相关数据类型及接口】

[ot\_fisheye\_attr](#ot_fisheye_attr)

### ot\_gdc\_fisheye\_job\_cfg<a name="ZH-CN_TOPIC_0000002441697509"></a>

【说明】

定义FISHEYE任务对应的鱼眼镜头LMF参数配置。

【定义】

```
typedef struct {
    td_phys_addr_t  len_map_phys_addr; /* LMF coefficient physic addr */
} ot_gdc_fisheye_job_cfg;
```

【成员】

<a name="table2051mcpsimp"></a>
<table><thead align="left"><tr id="row2056mcpsimp"><th class="cellrowborder" valign="top" width="27%" id="mcps1.1.3.1.1"><p id="p2058mcpsimp"><a name="p2058mcpsimp"></a><a name="p2058mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="73%" id="mcps1.1.3.1.2"><p id="p2060mcpsimp"><a name="p2060mcpsimp"></a><a name="p2060mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row2062mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p2064mcpsimp"><a name="p2064mcpsimp"></a><a name="p2064mcpsimp"></a>len_map_phys_addr</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p2066mcpsimp"><a name="p2066mcpsimp"></a><a name="p2066mcpsimp"></a>保存鱼眼<span xml:lang="sv-SE" id="ph2067mcpsimp"><a name="ph2067mcpsimp"></a><a name="ph2067mcpsimp"></a>LMF</span>系数的物理地址。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   如果在接口[ss\_mpi\_gdc\_add\_correction\_task](ss_mpi_gdc_add_correction_task.md)中，[ot\_fisheye\_attr](ot_fisheye_attr.md)属性开启了LMF参数功能，则必须调用[ss\_mpi\_gdc\_set\_cfg](ss_mpi_gdc_set_cfg.md)接口设置LMF参数，否则进行鱼眼处理时会因为获取不到用户配置的LMF参数而报错。
-   LMF参数要按照镜头厂商的推荐参数进行转换后再配置（正确的LMF参数符合lmf\_coef\[i+1\] ≥lmf\_coef\[i\]+5&& lmf\_coef \[i + 1\] <= lmf\_coef \[i\] + 31 && lmf\_coef \[57\] <1024< lmf\_coef \[85\]&& lmf\_coef\[0\] = 0的规律）
    -   如果配置的参数不满足此规律则会报错，如果配置的参数有误则可能出现总线错误等异常现象；
    -   如果没有镜头厂商提供的参数建议关闭LMF功能。

-   len\_map\_phys\_addr地址只能是MMZ内存的地址，且须16Byte对齐。

【相关数据类型及接口】

[ot\_fisheye\_attr](#ot_fisheye_attr)

### ot\_fisheye\_mount\_mode<a name="ZH-CN_TOPIC_0000002408098266"></a>

【说明】

定义FISHEYE属性中的安装模式。

【定义】

```
typedef enum {
    OT_FISHEYE_MOUNT_MODE_DESKTOP = 0, /* Desktop mount mode */
    OT_FISHEYE_MOUNT_MODE_CEILING = 1, /* Ceiling mount mode */
    OT_FISHEYE_MOUNT_MODE_WALL = 2, /* wall mount mode */
    OT_FISHEYE_MOUNT_MODE_BUTT
} ot_fisheye_mount_mode;
```

【成员】

<a name="table2109mcpsimp"></a>
<table><thead align="left"><tr id="row2114mcpsimp"><th class="cellrowborder" valign="top" width="54%" id="mcps1.1.3.1.1"><p id="p2116mcpsimp"><a name="p2116mcpsimp"></a><a name="p2116mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="46%" id="mcps1.1.3.1.2"><p id="p2118mcpsimp"><a name="p2118mcpsimp"></a><a name="p2118mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row2120mcpsimp"><td class="cellrowborder" valign="top" width="54%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p2122mcpsimp"><a name="p2122mcpsimp"></a><a name="p2122mcpsimp"></a>OT_FISHEYE_MOUNT_MODE_DESKTOP</p>
</td>
<td class="cellrowborder" valign="top" width="46%" headers="mcps1.1.3.1.2 "><p id="p2124mcpsimp"><a name="p2124mcpsimp"></a><a name="p2124mcpsimp"></a>地装模式。</p>
</td>
</tr>
<tr id="row2125mcpsimp"><td class="cellrowborder" valign="top" width="54%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p2127mcpsimp"><a name="p2127mcpsimp"></a><a name="p2127mcpsimp"></a>OT_FISHEYE_MOUNT_MODE_CEILING</p>
</td>
<td class="cellrowborder" valign="top" width="46%" headers="mcps1.1.3.1.2 "><p id="p2129mcpsimp"><a name="p2129mcpsimp"></a><a name="p2129mcpsimp"></a>顶装模式。</p>
</td>
</tr>
<tr id="row2130mcpsimp"><td class="cellrowborder" valign="top" width="54%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p2132mcpsimp"><a name="p2132mcpsimp"></a><a name="p2132mcpsimp"></a>OT_FISHEYE_MOUNT_MODE_WALL</p>
</td>
<td class="cellrowborder" valign="top" width="46%" headers="mcps1.1.3.1.2 "><p id="p2134mcpsimp"><a name="p2134mcpsimp"></a><a name="p2134mcpsimp"></a>壁装模式。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

无。

【相关数据类型及接口】

无。

### ot\_fisheye\_view\_mode<a name="ZH-CN_TOPIC_0000002408258102"></a>

【说明】

定义FISHEYE属性中的校正模式。

【定义】

```
typedef enum {
    OT_FISHEYE_VIEW_MODE_360_PANORAMA = 0, /* 360 panorama mode of gdc correction */
    OT_FISHEYE_VIEW_MODE_180_PANORAMA = 1, /* 180 panorama mode of gdc correction */
    OT_FISHEYE_VIEW_MODE_NORM = 2, /* normal mode of gdc correction */
    OT_FISHEYE_VIEW_MODE_NO_TRANS = 3, /* no gdc correction */
    OT_FISHEYE_VIEW_MODE_BUTT
} ot_fisheye_view_mode;
```

【成员】

<a name="table115mcpsimp"></a>
<table><thead align="left"><tr id="row120mcpsimp"><th class="cellrowborder" valign="top" width="64%" id="mcps1.1.3.1.1"><p id="p122mcpsimp"><a name="p122mcpsimp"></a><a name="p122mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="36%" id="mcps1.1.3.1.2"><p id="p124mcpsimp"><a name="p124mcpsimp"></a><a name="p124mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row126mcpsimp"><td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p128mcpsimp"><a name="p128mcpsimp"></a><a name="p128mcpsimp"></a>OT_FISHEYE_VIEW_MODE_360_PANORAMA</p>
</td>
<td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.2 "><p id="p130mcpsimp"><a name="p130mcpsimp"></a><a name="p130mcpsimp"></a>360&deg;全景模式。</p>
</td>
</tr>
<tr id="row131mcpsimp"><td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p133mcpsimp"><a name="p133mcpsimp"></a><a name="p133mcpsimp"></a>OT_FISHEYE_VIEW_MODE_180_PANORAMA</p>
</td>
<td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.2 "><p id="p135mcpsimp"><a name="p135mcpsimp"></a><a name="p135mcpsimp"></a>180&deg;全景模式。</p>
</td>
</tr>
<tr id="row136mcpsimp"><td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p138mcpsimp"><a name="p138mcpsimp"></a><a name="p138mcpsimp"></a>OT_FISHEYE_VIEW_MODE_NORM</p>
</td>
<td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.2 "><p id="p140mcpsimp"><a name="p140mcpsimp"></a><a name="p140mcpsimp"></a>Normal校正模式。</p>
</td>
</tr>
<tr id="row141mcpsimp"><td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p143mcpsimp"><a name="p143mcpsimp"></a><a name="p143mcpsimp"></a>OT_FISHEYE_VIEW_MODE_NO_TRANS</p>
</td>
<td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.2 "><p id="p145mcpsimp"><a name="p145mcpsimp"></a><a name="p145mcpsimp"></a>不做校正模式，输出原图。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

360°校正模式下不支持壁装，180°校正模式下不支持顶装和地装。

【相关数据类型及接口】

无

### ot\_fisheye\_rgn\_attr<a name="ZH-CN_TOPIC_0000002408258090"></a>

【说明】

定义FISHEYE每个校正区域的属性配置。

【定义】

```
typedef struct {
    ot_fisheye_view_mode view_mode; /* RW; range: [0, 3];gdc view mode */
    td_u32 in_radius; /* RW; inner radius of gdc correction region */
    td_u32 out_radius; /* RW; out radius of gdc correction region */
    td_u32 pan; /* RW; range: [0, 360] */
    td_u32 tilt; /* RW; range: [0, 360] */
    td_u32 hor_zoom; /* RW; horizontal zoom of correction region */
    td_u32 ver_zoom; /* RW; vertical zoom of correction region */
    ot_rect out_rect; /* RW; out imge rectangle attribute */
} ot_fisheye_rgn_attr;
```

【成员】

<a name="table168mcpsimp"></a>
<table><thead align="left"><tr id="row173mcpsimp"><th class="cellrowborder" valign="top" width="36%" id="mcps1.1.3.1.1"><p id="p175mcpsimp"><a name="p175mcpsimp"></a><a name="p175mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="64%" id="mcps1.1.3.1.2"><p id="p177mcpsimp"><a name="p177mcpsimp"></a><a name="p177mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row179mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p181mcpsimp"><a name="p181mcpsimp"></a><a name="p181mcpsimp"></a>view_mode</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p183mcpsimp"><a name="p183mcpsimp"></a><a name="p183mcpsimp"></a>该校正区域的校正模式。</p>
</td>
</tr>
<tr id="row184mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p186mcpsimp"><a name="p186mcpsimp"></a><a name="p186mcpsimp"></a>in_radius</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p188mcpsimp"><a name="p188mcpsimp"></a><a name="p188mcpsimp"></a>360&deg;全景模式表示该校正区域所对应原图的内半径，其他模式无效。</p>
<p xml:lang="de-DE" id="p189mcpsimp"><a name="p189mcpsimp"></a><a name="p189mcpsimp"></a><span xml:lang="en-US" id="ph190mcpsimp"><a name="ph190mcpsimp"></a><a name="ph190mcpsimp"></a>取值范围：</span>[0，out_radius)</p>
</td>
</tr>
<tr id="row191mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p193mcpsimp"><a name="p193mcpsimp"></a><a name="p193mcpsimp"></a>out_radius</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p195mcpsimp"><a name="p195mcpsimp"></a><a name="p195mcpsimp"></a>360&deg;全景模式表示该校正区域所对应原图的外半径，其他模式为校正区域的可视半径。</p>
<p xml:lang="de-DE" id="p196mcpsimp"><a name="p196mcpsimp"></a><a name="p196mcpsimp"></a><span xml:lang="en-US" id="ph197mcpsimp"><a name="ph197mcpsimp"></a><a name="ph197mcpsimp"></a>取值范围：</span>[1，3 x max(width of input picture/4, height of input picture/4)]</p>
</td>
</tr>
<tr id="row198mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p200mcpsimp"><a name="p200mcpsimp"></a><a name="p200mcpsimp"></a>pan</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p202mcpsimp"><a name="p202mcpsimp"></a><a name="p202mcpsimp"></a>该校正区域PTZ参数的Pan值。</p>
<p id="p203mcpsimp"><a name="p203mcpsimp"></a><a name="p203mcpsimp"></a>取值范围：[<span xml:lang="de-DE" id="ph204mcpsimp"><a name="ph204mcpsimp"></a><a name="ph204mcpsimp"></a>0，360</span>]</p>
</td>
</tr>
<tr id="row205mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p207mcpsimp"><a name="p207mcpsimp"></a><a name="p207mcpsimp"></a>tilt</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p209mcpsimp"><a name="p209mcpsimp"></a><a name="p209mcpsimp"></a>该校正区域PTZ参数的Tilt值。</p>
<p id="p210mcpsimp"><a name="p210mcpsimp"></a><a name="p210mcpsimp"></a>取值范围：[<span xml:lang="de-DE" id="ph211mcpsimp"><a name="ph211mcpsimp"></a><a name="ph211mcpsimp"></a>0，360</span>]</p>
</td>
</tr>
<tr id="row212mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p214mcpsimp"><a name="p214mcpsimp"></a><a name="p214mcpsimp"></a>hor_zoom</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p216mcpsimp"><a name="p216mcpsimp"></a><a name="p216mcpsimp"></a>该校正区域PTZ参数的水平Zoom值。</p>
<p id="p217mcpsimp"><a name="p217mcpsimp"></a><a name="p217mcpsimp"></a>取值范围：</p>
<a name="ul218mcpsimp"></a><a name="ul218mcpsimp"></a><ul id="ul218mcpsimp"><li>NORMAL校正模式下为[1，5265]</li><li>其它校正模式下为[<span xml:lang="de-DE" id="ph221mcpsimp"><a name="ph221mcpsimp"></a><a name="ph221mcpsimp"></a>1，4095</span>]</li></ul>
</td>
</tr>
<tr id="row222mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p224mcpsimp"><a name="p224mcpsimp"></a><a name="p224mcpsimp"></a>ver_zoom</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p226mcpsimp"><a name="p226mcpsimp"></a><a name="p226mcpsimp"></a>该校正区域PTZ参数的垂直Zoom值。</p>
<p id="p227mcpsimp"><a name="p227mcpsimp"></a><a name="p227mcpsimp"></a>取值范围：[<span xml:lang="de-DE" id="ph228mcpsimp"><a name="ph228mcpsimp"></a><a name="ph228mcpsimp"></a>1，4095</span>]</p>
</td>
</tr>
<tr id="row229mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p231mcpsimp"><a name="p231mcpsimp"></a><a name="p231mcpsimp"></a>out_rect</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p233mcpsimp"><a name="p233mcpsimp"></a><a name="p233mcpsimp"></a>该校正区域的输出位置及宽高。</p>
<p id="p234mcpsimp"><a name="p234mcpsimp"></a><a name="p234mcpsimp"></a>取值范围：位置及宽高不能超出整个鱼眼矫正输出图的范围；且宽高需满足鱼眼输出图像规格限制</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   鱼眼支持对一幅图像的多个区域分别进行校正，每个区域的属性配置是各自独立的。
-   NORMAL矫正模式下，当hor\_zoom值大于4875时，也就是视场角大于150度时，可能会出现性能不足的情况。

【相关数据类型及接口】

无

### ot\_fisheye\_rgn\_attr\_ex<a name="ZH-CN_TOPIC_0000002408258190"></a>

【说明】

定义FISHEYE每个校正区域的属性配置\(XY模式\)。

【定义】

```
typedef struct {
    ot_fisheye_view_mode view_mode; /* RW; range: [0, 3];gdc view mode */
    td_u32 in_radius; /* RW; inner radius of gdc correction region */
    td_u32 out_radius; /* RW; out radius of gdc correction region */
    td_u32 x; /* RW; range: x-coordinate of the centre point of correction region */
    td_u32 y; /* RW; range: y-coordinate of the centre point of correction region */
    td_u32 hor_zoom; /* RW; horizontal zoom of correction region */
    td_u32 ver_zoom; /* RW; vertical zoom of correction region */
    ot_rect out_rect; /* RW; out imge rectangle attribute */
} ot_fisheye_rgn_attr_ex;
```

【成员】

<a name="table258mcpsimp"></a>
<table><thead align="left"><tr id="row263mcpsimp"><th class="cellrowborder" valign="top" width="36%" id="mcps1.1.3.1.1"><p id="p265mcpsimp"><a name="p265mcpsimp"></a><a name="p265mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="64%" id="mcps1.1.3.1.2"><p id="p267mcpsimp"><a name="p267mcpsimp"></a><a name="p267mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row269mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p271mcpsimp"><a name="p271mcpsimp"></a><a name="p271mcpsimp"></a>view_mode</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p273mcpsimp"><a name="p273mcpsimp"></a><a name="p273mcpsimp"></a>该校正区域的校正模式。</p>
</td>
</tr>
<tr id="row274mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p276mcpsimp"><a name="p276mcpsimp"></a><a name="p276mcpsimp"></a>in_radius</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p278mcpsimp"><a name="p278mcpsimp"></a><a name="p278mcpsimp"></a>360&deg;全景模式表示该校正区域所对应原图的内半径，其他模式无效。</p>
<p xml:lang="de-DE" id="p279mcpsimp"><a name="p279mcpsimp"></a><a name="p279mcpsimp"></a><span xml:lang="en-US" id="ph280mcpsimp"><a name="ph280mcpsimp"></a><a name="ph280mcpsimp"></a>取值范围：[0，</span>out_radius<span xml:lang="en-US" id="ph281mcpsimp"><a name="ph281mcpsimp"></a><a name="ph281mcpsimp"></a>)</span></p>
</td>
</tr>
<tr id="row282mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p284mcpsimp"><a name="p284mcpsimp"></a><a name="p284mcpsimp"></a>out_radius</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p286mcpsimp"><a name="p286mcpsimp"></a><a name="p286mcpsimp"></a>360&deg;全景模式表示该校正区域所对应原图的外半径，其他模式为校正区域的可视半径。</p>
<p xml:lang="de-DE" id="p287mcpsimp"><a name="p287mcpsimp"></a><a name="p287mcpsimp"></a><span xml:lang="en-US" id="ph288mcpsimp"><a name="ph288mcpsimp"></a><a name="ph288mcpsimp"></a>取值范围：</span>[1，3 x max(width of input picture/4, height of input picture/4)]</p>
</td>
</tr>
<tr id="row289mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p291mcpsimp"><a name="p291mcpsimp"></a><a name="p291mcpsimp"></a>x</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p293mcpsimp"><a name="p293mcpsimp"></a><a name="p293mcpsimp"></a>选择区域的中心点X坐标。</p>
<p xml:lang="de-DE" id="p294mcpsimp"><a name="p294mcpsimp"></a><a name="p294mcpsimp"></a><span xml:lang="en-US" id="ph295mcpsimp"><a name="ph295mcpsimp"></a><a name="ph295mcpsimp"></a>取值范围：[</span>0，width of input picture-1<span xml:lang="en-US" id="ph296mcpsimp"><a name="ph296mcpsimp"></a><a name="ph296mcpsimp"></a>]</span></p>
</td>
</tr>
<tr id="row297mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p299mcpsimp"><a name="p299mcpsimp"></a><a name="p299mcpsimp"></a>y</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p301mcpsimp"><a name="p301mcpsimp"></a><a name="p301mcpsimp"></a>选择区域的中心点Y坐标。</p>
<p xml:lang="de-DE" id="p302mcpsimp"><a name="p302mcpsimp"></a><a name="p302mcpsimp"></a><span xml:lang="en-US" id="ph303mcpsimp"><a name="ph303mcpsimp"></a><a name="ph303mcpsimp"></a>取值范围：[</span>0，height of input picture-1<span xml:lang="en-US" id="ph304mcpsimp"><a name="ph304mcpsimp"></a><a name="ph304mcpsimp"></a>]</span></p>
</td>
</tr>
<tr id="row305mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p307mcpsimp"><a name="p307mcpsimp"></a><a name="p307mcpsimp"></a>hor_zoom</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p309mcpsimp"><a name="p309mcpsimp"></a><a name="p309mcpsimp"></a>该校正区域PTZ参数的水平Zoom值。</p>
<p id="p310mcpsimp"><a name="p310mcpsimp"></a><a name="p310mcpsimp"></a>取值范围：</p>
<a name="ul311mcpsimp"></a><a name="ul311mcpsimp"></a><ul id="ul311mcpsimp"><li>NORMAL校正模式下为[1，5265]</li><li>其它校正模式下为[<span xml:lang="de-DE" id="ph314mcpsimp"><a name="ph314mcpsimp"></a><a name="ph314mcpsimp"></a>1，4095</span>]</li></ul>
</td>
</tr>
<tr id="row315mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p317mcpsimp"><a name="p317mcpsimp"></a><a name="p317mcpsimp"></a>ver_zoom</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p319mcpsimp"><a name="p319mcpsimp"></a><a name="p319mcpsimp"></a>该校正区域PTZ参数的垂直Zoom值。</p>
<p id="p320mcpsimp"><a name="p320mcpsimp"></a><a name="p320mcpsimp"></a>取值范围：[<span xml:lang="de-DE" id="ph321mcpsimp"><a name="ph321mcpsimp"></a><a name="ph321mcpsimp"></a>1，4095</span>]</p>
</td>
</tr>
<tr id="row322mcpsimp"><td class="cellrowborder" valign="top" width="36%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p324mcpsimp"><a name="p324mcpsimp"></a><a name="p324mcpsimp"></a>out_rect</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.3.1.2 "><p id="p326mcpsimp"><a name="p326mcpsimp"></a><a name="p326mcpsimp"></a>该校正区域的输出位置及宽高。</p>
<p id="p327mcpsimp"><a name="p327mcpsimp"></a><a name="p327mcpsimp"></a>取值范围：位置及宽高不能超出整个鱼眼矫正输出图的范围；且宽高需满足鱼眼输出图像规格限制</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   鱼眼支持对一幅图像的多个区域分别进行校正，每个区域的属性配置是各自独立的。
-   NORMAL矫正模式下，当hor\_zoom值大于4875时，也就是视场角大于150度时，可能会出现性能不足的情况。

【相关数据类型及接口】

无

### OT\_GDC\_PMF\_COEF\_NUM<a name="ZH-CN_TOPIC_0000002408098378"></a>

【说明】

PMF矫正系数的参数个数。

【定义】

```
#define OT_GDC_PMF_COEF_NUM         9
```

【注意事项】

无。

【相关数据类型及接口】

[ot\_gdc\_pmf\_attr](#ot_gdc_pmf_attr)

### ot\_gdc\_pmf\_attr<a name="ZH-CN_TOPIC_0000002441657545"></a>

【说明】

定义PMF属性的相关配置。

【定义】

```
typedef struct {
    td_s64 pmf_coef[OT_GDC_PMF_COEF_NUM]; /* W;  PMF coefficient of gdc */
} ot_gdc_pmf_attr;
```

【成员】

<a name="table352mcpsimp"></a>
<table><thead align="left"><tr id="row357mcpsimp"><th class="cellrowborder" valign="top" width="25%" id="mcps1.1.3.1.1"><p id="p359mcpsimp"><a name="p359mcpsimp"></a><a name="p359mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="75%" id="mcps1.1.3.1.2"><p id="p361mcpsimp"><a name="p361mcpsimp"></a><a name="p361mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row363mcpsimp"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.1.3.1.1 "><p id="p365mcpsimp"><a name="p365mcpsimp"></a><a name="p365mcpsimp"></a>pmf_coef</p>
</td>
<td class="cellrowborder" valign="top" width="75%" headers="mcps1.1.3.1.2 "><p id="p367mcpsimp"><a name="p367mcpsimp"></a><a name="p367mcpsimp"></a><span xml:lang="sv-SE" id="ph368mcpsimp"><a name="ph368mcpsimp"></a><a name="ph368mcpsimp"></a>PMF</span>矫正系数。</p>
<p xml:lang="sv-SE" id="p369mcpsimp"><a name="p369mcpsimp"></a><a name="p369mcpsimp"></a>取值范围请参考《GDC调试指南》的2.2.5小节。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

无。

【相关数据类型及接口】

无。

### OT\_FISHEYE\_MAX\_RGN\_NUM<a name="ZH-CN_TOPIC_0000002441697409"></a>

【说明】

FISHEYE支持的最大校正区域个数。

【定义】

```
#define OT_FISHEYE_MAX_RGN_NUM 		4
```

【注意事项】

无

【相关数据类型及接口】

[ot\_fisheye\_attr](#ot_fisheye_attr)

### ot\_fisheye\_attr<a name="ZH-CN_TOPIC_0000002408258278"></a>

【说明】

定义FISHEYE属性的相关配置。

【定义】

```
typedef struct {
     /*
      * RW; range: [0, 1];
      * whether gdc len's LMF coefficient is from user config or from default linear config
      */
    td_bool lmf_en;
    td_bool bg_color_en; /* RW; range: [0, 1];whether use background color or not */
    td_u32  bg_color; /* RW; range: [0,0xffffff];the background color RGB888 */
 
    /*
     * RW; range: [-511, 511];
     * the horizontal offset between image center and physical center of len
     */
    td_s32  hor_offset;
    /*
     * RW; range: [-511, 511];
     * the vertical offset between image center and physical center of len
     */
    td_s32  ver_offset;
 
    td_u32  trapezoid_coef; /* RW; range: [0, 32];strength coefficient of trapezoid correction */
    td_s32  fan_strength; /* RW; range: [-760, 760];strength coefficient of fan correction */
 
    ot_fisheye_mount_mode mount_mode; /* RW; range: [0, 2];gdc mount mode */
 
    td_u32 rgn_num; /* RW; range: [1, 4]; gdc correction region number */
    ot_fisheye_rgn_attr fisheye_rgn_attr[OT_FISHEYE_MAX_RGN_NUM]; /* RW; attribution of gdc correction region */
} ot_fisheye_attr;
```

【成员】

<a name="table421mcpsimp"></a>
<table><thead align="left"><tr id="row426mcpsimp"><th class="cellrowborder" valign="top" width="28.000000000000004%" id="mcps1.1.3.1.1"><p id="p428mcpsimp"><a name="p428mcpsimp"></a><a name="p428mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="72%" id="mcps1.1.3.1.2"><p id="p430mcpsimp"><a name="p430mcpsimp"></a><a name="p430mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row432mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p434mcpsimp"><a name="p434mcpsimp"></a><a name="p434mcpsimp"></a>lmf_en</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p436mcpsimp"><a name="p436mcpsimp"></a><a name="p436mcpsimp"></a>是否使用用户设置的鱼眼镜头LMF参数。</p>
</td>
</tr>
<tr id="row437mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p439mcpsimp"><a name="p439mcpsimp"></a><a name="p439mcpsimp"></a>bg_color_en</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p441mcpsimp"><a name="p441mcpsimp"></a><a name="p441mcpsimp"></a>是否在输出图像打上背景色。</p>
</td>
</tr>
<tr id="row442mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p444mcpsimp"><a name="p444mcpsimp"></a><a name="p444mcpsimp"></a>bg_color</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p id="p446mcpsimp"><a name="p446mcpsimp"></a><a name="p446mcpsimp"></a>背景色的颜色RGB888格式，取值范围：[0, 0xFFFFFF]</p>
</td>
</tr>
<tr id="row447mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p449mcpsimp"><a name="p449mcpsimp"></a><a name="p449mcpsimp"></a>hor_offset</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p id="p451mcpsimp"><a name="p451mcpsimp"></a><a name="p451mcpsimp"></a>镜头中心点相对于SENSOR中心点的水平偏移，取值范围：[-511, 511]，单位为像素。</p>
</td>
</tr>
<tr id="row452mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p454mcpsimp"><a name="p454mcpsimp"></a><a name="p454mcpsimp"></a>ver_offset</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p id="p456mcpsimp"><a name="p456mcpsimp"></a><a name="p456mcpsimp"></a>镜头中心点相对于SENSOR中心点的垂直偏移，取值范围：[-511, 511]，单位为像素。</p>
</td>
</tr>
<tr id="row457mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p459mcpsimp"><a name="p459mcpsimp"></a><a name="p459mcpsimp"></a>trapezoid_coef</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p461mcpsimp"><a name="p461mcpsimp"></a><a name="p461mcpsimp"></a>梯形校正强度系数。用于壁装时的俯仰角校正，取值范围：[0, 32]</p>
</td>
</tr>
<tr id="row462mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p464mcpsimp"><a name="p464mcpsimp"></a><a name="p464mcpsimp"></a>fan_strength</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p466mcpsimp"><a name="p466mcpsimp"></a><a name="p466mcpsimp"></a>扇形校正强度系数，仅在180模式时有效，<span xml:lang="en-US" id="ph467mcpsimp"><a name="ph467mcpsimp"></a><a name="ph467mcpsimp"></a>取值范围：[-760, 760]</span></p>
</td>
</tr>
<tr id="row468mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p470mcpsimp"><a name="p470mcpsimp"></a><a name="p470mcpsimp"></a>mount_mode</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p472mcpsimp"><a name="p472mcpsimp"></a><a name="p472mcpsimp"></a>鱼眼校正安装模式。</p>
</td>
</tr>
<tr id="row473mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p475mcpsimp"><a name="p475mcpsimp"></a><a name="p475mcpsimp"></a>rgn_num</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p477mcpsimp"><a name="p477mcpsimp"></a><a name="p477mcpsimp"></a>一幅图像的校正区域数目，最多支持4个区域。</p>
</td>
</tr>
<tr id="row478mcpsimp"><td class="cellrowborder" valign="top" width="28.000000000000004%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p480mcpsimp"><a name="p480mcpsimp"></a><a name="p480mcpsimp"></a>fisheye_rgn_attr</p>
</td>
<td class="cellrowborder" valign="top" width="72%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p482mcpsimp"><a name="p482mcpsimp"></a><a name="p482mcpsimp"></a>每个校正区域各自的属性配置。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   FISHEYE支持对一幅图像的多个区域分别进行校正处理，每个校正区域的校正模式，PTZ参数等互相独立。同时根据每个校正区域设置的输出位置及宽高，对图像进行拼接后输出。
-   没有使能背景色时，输出图像的非校正区域是随机数据，可能会出现异常图像。

【相关数据类型及接口】

无。

### ot\_fisheye\_attr\_ex<a name="ZH-CN_TOPIC_0000002408258134"></a>

【说明】

定义FISHEYE属性的相关配置。

【定义】

```
typedef struct {
     /*
      * RW; range: [0, 1];
      * whether gdc len's LMF coefficient is from user config or from default linear config
      */
    td_bool lmf_en;
    td_bool bg_color_en; /* RW; range: [0, 1];whether use background color or not */
    td_u32 bg_color; /* RW; range: [0,0xffffff];the background color RGB888 */
 
    /*
     * RW; range: [-511, 511];
     * the horizontal offset between image center and physical center of len
     */
    td_s32 hor_offset;
    /*
     * RW; range: [-511, 511];
     * the vertical offset between image center and physical center of len
     */
    td_s32 ver_offset;
 
    td_u32 trapezoid_coef; /* RW; range: [0, 32];strength coefficient of trapezoid correction */
    td_s32 fan_strength; /* RW; range: [-760, 760];strength coefficient of fan correction */
 
    ot_fisheye_mount_mode mount_mode; /* RW; range: [0, 2];gdc mount mode */
 
    td_u32 rgn_num; /* RW; range: [1, 4]; gdc correction region number */
    ot_fisheye_rgn_attr_ex fisheye_rgn_attr[OT_FISHEYE_MAX_RGN_NUM]; /* RW; attribution of gdc correction region */
} ot_fisheye_attr_ex;
```

【成员】

<a name="table527mcpsimp"></a>
<table><thead align="left"><tr id="row532mcpsimp"><th class="cellrowborder" valign="top" width="37%" id="mcps1.1.3.1.1"><p id="p534mcpsimp"><a name="p534mcpsimp"></a><a name="p534mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="63%" id="mcps1.1.3.1.2"><p id="p536mcpsimp"><a name="p536mcpsimp"></a><a name="p536mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row538mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p540mcpsimp"><a name="p540mcpsimp"></a><a name="p540mcpsimp"></a>lmf_en</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p542mcpsimp"><a name="p542mcpsimp"></a><a name="p542mcpsimp"></a>是否使用用户设置的鱼眼镜头LMF参数。</p>
</td>
</tr>
<tr id="row543mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p545mcpsimp"><a name="p545mcpsimp"></a><a name="p545mcpsimp"></a>bg_color_en</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p547mcpsimp"><a name="p547mcpsimp"></a><a name="p547mcpsimp"></a>是否在输出图像打上背景色。</p>
</td>
</tr>
<tr id="row548mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p550mcpsimp"><a name="p550mcpsimp"></a><a name="p550mcpsimp"></a>bg_color</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p id="p552mcpsimp"><a name="p552mcpsimp"></a><a name="p552mcpsimp"></a>背景色的颜色RGB888格式，取值范围：[0, 0xFFFFFF]。</p>
</td>
</tr>
<tr id="row553mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p555mcpsimp"><a name="p555mcpsimp"></a><a name="p555mcpsimp"></a>hor_offset</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p id="p557mcpsimp"><a name="p557mcpsimp"></a><a name="p557mcpsimp"></a>镜头中心点相对于SENSOR中心点的水平偏移，取值范围：[-511, 511]，单位为像素。</p>
</td>
</tr>
<tr id="row558mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p560mcpsimp"><a name="p560mcpsimp"></a><a name="p560mcpsimp"></a>ver_offset</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p id="p562mcpsimp"><a name="p562mcpsimp"></a><a name="p562mcpsimp"></a>镜头中心点相对于SENSOR中心点的垂直偏移，取值范围：[-511, 511]，单位为像素。</p>
</td>
</tr>
<tr id="row563mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p565mcpsimp"><a name="p565mcpsimp"></a><a name="p565mcpsimp"></a>trapezoid_coef</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p id="p567mcpsimp"><a name="p567mcpsimp"></a><a name="p567mcpsimp"></a>梯形校正强度系数。用于壁装时的俯仰角校正，取值范围：[0, 32]</p>
</td>
</tr>
<tr id="row568mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p570mcpsimp"><a name="p570mcpsimp"></a><a name="p570mcpsimp"></a>fan_strength</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p id="p572mcpsimp"><a name="p572mcpsimp"></a><a name="p572mcpsimp"></a>扇校正强度系数，仅在180模式时有效，取值范围：[-760, 760]</p>
</td>
</tr>
<tr id="row573mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p575mcpsimp"><a name="p575mcpsimp"></a><a name="p575mcpsimp"></a>mount_mode</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p id="p577mcpsimp"><a name="p577mcpsimp"></a><a name="p577mcpsimp"></a>鱼眼校正安装模式。</p>
</td>
</tr>
<tr id="row578mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p580mcpsimp"><a name="p580mcpsimp"></a><a name="p580mcpsimp"></a>rgn_num</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p id="p582mcpsimp"><a name="p582mcpsimp"></a><a name="p582mcpsimp"></a>一幅图像的校正区域数目，最多支持4个区域。</p>
</td>
</tr>
<tr id="row583mcpsimp"><td class="cellrowborder" valign="top" width="37%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p585mcpsimp"><a name="p585mcpsimp"></a><a name="p585mcpsimp"></a>fisheye_rgn_attr</p>
</td>
<td class="cellrowborder" valign="top" width="63%" headers="mcps1.1.3.1.2 "><p id="p587mcpsimp"><a name="p587mcpsimp"></a><a name="p587mcpsimp"></a>每个校正区域各自的属性配置（XY模式属性）。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   FISHEYE支持对一幅图像的多个区域分别进行校正处理，每个校正区域的校正模式，PTZ参数等互相独立。同时根据每个校正区域设置的输出位置及宽高，对图像进行拼接后输出。
-   没有使能背景色时，输出图像的非校正区域是随机数据，可能会出现异常图像。

【相关数据类型及接口】

无。

### ot\_fisheye\_correction\_attr<a name="ZH-CN_TOPIC_0000002441697353"></a>

【说明】

定义鱼眼矫正属性的相关配置。

【定义】

```
typedef struct {
    td_bool enable;
    ot_fisheye_attr fisheye_attr;
    ot_size dst_size;
} ot_fisheye_correction_attr;
```

【成员】

<a name="table609mcpsimp"></a>
<table><thead align="left"><tr id="row614mcpsimp"><th class="cellrowborder" valign="top" width="27%" id="mcps1.1.3.1.1"><p id="p616mcpsimp"><a name="p616mcpsimp"></a><a name="p616mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="73%" id="mcps1.1.3.1.2"><p id="p618mcpsimp"><a name="p618mcpsimp"></a><a name="p618mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row620mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p622mcpsimp"><a name="p622mcpsimp"></a><a name="p622mcpsimp"></a>enable</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p624mcpsimp"><a name="p624mcpsimp"></a><a name="p624mcpsimp"></a>控制鱼眼矫正使能开关。</p>
</td>
</tr>
<tr id="row625mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p627mcpsimp"><a name="p627mcpsimp"></a><a name="p627mcpsimp"></a>fisheye_attr</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p629mcpsimp"><a name="p629mcpsimp"></a><a name="p629mcpsimp"></a>鱼眼属性。</p>
</td>
</tr>
<tr id="row630mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p632mcpsimp"><a name="p632mcpsimp"></a><a name="p632mcpsimp"></a>dst_size</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p634mcpsimp"><a name="p634mcpsimp"></a><a name="p634mcpsimp"></a>鱼眼矫正后的输出图像大小。范围：[<a href="OT_FISHEYE_MIN_OUT_IMAGE_WIDTH.md">OT_FISHEYE_MIN_OUT_IMAGE_WIDTH</a> x <a href="OT_FISHEYE_MIN_OUT_IMAGE_HEIGHT.md">OT_FISHEYE_MIN_OUT_IMAGE_HEIGHT</a><span xml:lang="sv-SE" id="ph637mcpsimp"><a name="ph637mcpsimp"></a><a name="ph637mcpsimp"></a>, </span><a href="OT_GDC_MAX_IMAGE_WIDTH.md">OT_GDC_MAX_IMAGE_WIDTH</a> x <a href="OT_GDC_MAX_IMAGE_HEIGHT.md">OT_GDC_MAX_IMAGE_HEIGHT</a>]</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

无。

【相关数据类型及接口】

无。

### ot\_gdc\_fisheye\_point\_query\_attr<a name="ZH-CN_TOPIC_0000002441657529"></a>

【说明】

鱼眼矫正坐标点查找属性参数。

【定义】

```
typedef struct {
    td_u32 rgn_index;
    ot_fisheye_attr *fisheye_attr;
    td_u16 lmf_coef[OT_FISHEYE_LMF_COEF_NUM];
} ot_gdc_fisheye_point_query_attr;
```

【成员】

<a name="table657mcpsimp"></a>
<table><thead align="left"><tr id="row662mcpsimp"><th class="cellrowborder" valign="top" width="26%" id="mcps1.1.3.1.1"><p id="p664mcpsimp"><a name="p664mcpsimp"></a><a name="p664mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="74%" id="mcps1.1.3.1.2"><p id="p666mcpsimp"><a name="p666mcpsimp"></a><a name="p666mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row668mcpsimp"><td class="cellrowborder" valign="top" width="26%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p670mcpsimp"><a name="p670mcpsimp"></a><a name="p670mcpsimp"></a>rgn_index</p>
</td>
<td class="cellrowborder" valign="top" width="74%" headers="mcps1.1.3.1.2 "><p id="p672mcpsimp"><a name="p672mcpsimp"></a><a name="p672mcpsimp"></a>鱼眼校正区域号。</p>
<p id="p673mcpsimp"><a name="p673mcpsimp"></a><a name="p673mcpsimp"></a>取值范围：[0, <a href="OT_FISHEYE_MAX_RGN_NUM.md">OT_FISHEYE_MAX_RGN_NUM</a>-1]</p>
</td>
</tr>
<tr id="row675mcpsimp"><td class="cellrowborder" valign="top" width="26%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p677mcpsimp"><a name="p677mcpsimp"></a><a name="p677mcpsimp"></a>fisheye_attr</p>
</td>
<td class="cellrowborder" valign="top" width="74%" headers="mcps1.1.3.1.2 "><p id="p679mcpsimp"><a name="p679mcpsimp"></a><a name="p679mcpsimp"></a>鱼眼属性参数。</p>
</td>
</tr>
<tr id="row680mcpsimp"><td class="cellrowborder" valign="top" width="26%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p682mcpsimp"><a name="p682mcpsimp"></a><a name="p682mcpsimp"></a>lmf_coef</p>
</td>
<td class="cellrowborder" valign="top" width="74%" headers="mcps1.1.3.1.2 "><p id="p684mcpsimp"><a name="p684mcpsimp"></a><a name="p684mcpsimp"></a>LMF系数。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

无。

【相关数据类型及接口】

无。

### OT\_FISHEYE\_MIN\_IN\_IMAGE\_WIDTH<a name="ZH-CN_TOPIC_0000002441657597"></a>

【说明】

FISHEYE校正输入图像最小宽度。

【定义】

```
#define OT_FISHEYE_MIN_IN_IMAGE_WIDTH 	   1280
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_FISHEYE\_MIN\_IN\_IMAGE\_HEIGHT<a name="ZH-CN_TOPIC_0000002441657629"></a>

【说明】

FISHEYE校正输入图像最小高度。

【定义】

```
#define OT_FISHEYE_MIN_IN_IMAGE_HEIGHT    720
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_FISHEYE\_MIN\_OUT\_IMAGE\_WIDTH<a name="ZH-CN_TOPIC_0000002408098202"></a>

【说明】

FISHEYE校正输出图像最小宽度。

【定义】

```
#define OT_FISHEYE_MIN_OUT_IMAGE_WIDTH    640
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_FISHEYE\_MIN\_OUT\_IMAGE\_HEIGHT<a name="ZH-CN_TOPIC_0000002408098190"></a>

【说明】

FISHEYE校正输出图像最小高度。

【定义】

```
#define OT_FISHEYE_MIN_OUT_IMAGE_HEIGHT   360
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_LDC\_MIN\_IMAGE\_WIDTH<a name="ZH-CN_TOPIC_0000002408098242"></a>

【说明】

LDC校正输入输出图像最小宽度。

【定义】

```
#define OT_LDC_MIN_IMAGE_WIDTH 		        640
```

【注意事项】

仅SS928V100支持。

【相关数据类型及接口】

无

### OT\_LDC\_MIN\_IMAGE\_HEIGHT<a name="ZH-CN_TOPIC_0000002441697393"></a>

【说明】

LDC校正输入输出图像最小高度。

【定义】

```
#define OT_LDC_MIN_IMAGE_HEIGHT  		    480
```

【注意事项】

仅SS928V100支持。

【相关数据类型及接口】

无

### OT\_SPREAD\_MIN\_IMAGE\_WIDTH<a name="ZH-CN_TOPIC_0000002441657677"></a>

【说明】

SPREAD输入输出图像最小宽度。

【定义】

```
#define OT_SPREAD_MIN_IMAGE_WIDTH          640
```

【注意事项】

仅SS928V100支持。

【相关数据类型及接口】

无

### OT\_SPREAD\_MIN\_IMAGE\_HEIGHT<a name="ZH-CN_TOPIC_0000002408098182"></a>

【说明】

SPREAD输入输出图像最小高度。

【定义】

```
#define OT_SPREAD_MIN_IMAGE_HEIGHT         480
```

【注意事项】

仅SS928V100支持。

【相关数据类型及接口】

无

### OT\_ROTATION\_EX\_MIN\_IMAGE\_WIDTH<a name="ZH-CN_TOPIC_0000002408258166"></a>

【说明】

自由角度旋转输入输出图像最小宽度。

【定义】

```
#define OT_ROTATION_EX_MIN_IMAGE_WIDTH    480
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_ROTATION\_EX\_MIN\_IMAGE\_HEIGHT<a name="ZH-CN_TOPIC_0000002441657613"></a>

【说明】

自由角度旋转输入输出图像最小高度。

【定义】

```
#define OT_ROTATION_EX_MIN_IMAGE_HEIGHT    360
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_PMF\_MIN\_IMAGE\_WIDTH<a name="ZH-CN_TOPIC_0000002408098210"></a>

【说明】

PMF校正输入输出图像最小宽度。

【定义】

```
#define OT_PMF_MIN_IMAGE_WIDTH 		        480
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_PMF\_MIN\_IMAGE\_HEIGHT<a name="ZH-CN_TOPIC_0000002408258110"></a>

【说明】

PMF校正输入输出图像最小高度。

【定义】

```
#define OT_PMF_MIN_IMAGE_HEIGHT  		    360
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_GDC\_MAX\_IMAGE\_WIDTH<a name="ZH-CN_TOPIC_0000002441657593"></a>

【说明】

GDC模块支持的图像最大宽度。

【定义】

```
#define  OT_GDC_MAX_IMAGE_WIDTH       8192
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_GDC\_MAX\_IMAGE\_HEIGHT<a name="ZH-CN_TOPIC_0000002408098226"></a>

【说明】

GDC模块支持的图像最大高度。

【定义】

```
#define  OT_GDC_MAX_IMAGE_HEIGHT       8192
```

【注意事项】

无

【相关数据类型及接口】

无

### OT\_GDC\_DSP\_MAX\_NUM<a name="ZH-CN_TOPIC_0000002441697365"></a>

【说明】

GDC模块支持绑定DSP核的最大个数。

【定义】

```
#define  OT_GDC_DSP_MAX_NUM        2
```

【注意事项】

无

【相关数据类型及接口】

无

### ot\_gdc\_dsp\_lut\_cfg<a name="ZH-CN_TOPIC_0000002408258206"></a>

【说明】

定义DSP LUT参数配置。

【定义】

```
typedef struct {
    td_bool is_dsp_lut_support;
    td_bool is_dsp_id_bind[OT_GDC_DSP_MAX_NUM];
} ot_gdc_dsp_lut_cfg;
```

【成员】

<a name="table1985mcpsimp"></a>
<table><thead align="left"><tr id="row1990mcpsimp"><th class="cellrowborder" valign="top" width="27%" id="mcps1.1.3.1.1"><p id="p1992mcpsimp"><a name="p1992mcpsimp"></a><a name="p1992mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="73%" id="mcps1.1.3.1.2"><p id="p1994mcpsimp"><a name="p1994mcpsimp"></a><a name="p1994mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1996mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p256733410122"><a name="p256733410122"></a><a name="p256733410122"></a>is_dsp_lut_support</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p2000mcpsimp"><a name="p2000mcpsimp"></a><a name="p2000mcpsimp"></a>是否支持DSP LUT功能。</p>
</td>
</tr>
<tr id="row194251129181512"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p84255298159"><a name="p84255298159"></a><a name="p84255298159"></a>is_dsp_id_bind</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p2042620299157"><a name="p2042620299157"></a><a name="p2042620299157"></a>是否绑定对应的DSP核。</p>
<p id="p68561913360"><a name="p68561913360"></a><a name="p68561913360"></a>支持绑定0、1核。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

要绑定DSP核，需要调用DSP相关接口加载对应的DSP Bin，具体参考《SVP2.0 API 参考》。

【相关数据类型及接口】

-   [ss\_mpi\_gdc\_set\_dsp\_lut\_cfg](#ss_mpi_gdc_set_dsp_lut_cfg)
-   [ss\_mpi\_gdc\_get\_dsp\_lut\_cfg](#ss_mpi_gdc_get_dsp_lut_cfg)

## 错误码<a name="ZH-CN_TOPIC_0000002408098350"></a>


### GDC错误码<a name="ZH-CN_TOPIC_0000002441697465"></a>

GDC错误码如下所示。

**表 1**  GDC错误码

<a name="_Ref248290030"></a>
<table><thead align="left"><tr id="row824mcpsimp"><th class="cellrowborder" valign="top" width="20%" id="mcps1.2.4.1.1"><p id="p826mcpsimp"><a name="p826mcpsimp"></a><a name="p826mcpsimp"></a>错误代码</p>
</th>
<th class="cellrowborder" valign="top" width="48%" id="mcps1.2.4.1.2"><p id="p828mcpsimp"><a name="p828mcpsimp"></a><a name="p828mcpsimp"></a>宏定义</p>
</th>
<th class="cellrowborder" valign="top" width="32%" id="mcps1.2.4.1.3"><p id="p830mcpsimp"><a name="p830mcpsimp"></a><a name="p830mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row832mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p834mcpsimp"><a name="p834mcpsimp"></a><a name="p834mcpsimp"></a>0xa0258015</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p xml:lang="sv-SE" id="p836mcpsimp"><a name="p836mcpsimp"></a><a name="p836mcpsimp"></a>OT_ERR_GDC_NO_BUF</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p838mcpsimp"><a name="p838mcpsimp"></a><a name="p838mcpsimp"></a>分配内存失败。</p>
</td>
</tr>
<tr id="row839mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p841mcpsimp"><a name="p841mcpsimp"></a><a name="p841mcpsimp"></a>0xa0258016</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p xml:lang="sv-SE" id="p843mcpsimp"><a name="p843mcpsimp"></a><a name="p843mcpsimp"></a>OT_ERR_GDC_BUF_EMPTY</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p845mcpsimp"><a name="p845mcpsimp"></a><a name="p845mcpsimp"></a>GDC的job,task或node节点已经使用完毕。</p>
</td>
</tr>
<tr id="row846mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p848mcpsimp"><a name="p848mcpsimp"></a><a name="p848mcpsimp"></a>0xa025800a</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p xml:lang="sv-SE" id="p850mcpsimp"><a name="p850mcpsimp"></a><a name="p850mcpsimp"></a>OT_ERR_GDC_NULL_PTR</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p852mcpsimp"><a name="p852mcpsimp"></a><a name="p852mcpsimp"></a>输入参数空指针错误</p>
</td>
</tr>
<tr id="row853mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p855mcpsimp"><a name="p855mcpsimp"></a><a name="p855mcpsimp"></a>0xa0258007</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p xml:lang="sv-SE" id="p857mcpsimp"><a name="p857mcpsimp"></a><a name="p857mcpsimp"></a>OT_ERR_GDC_ILLEGAL_PARAM</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p859mcpsimp"><a name="p859mcpsimp"></a><a name="p859mcpsimp"></a>GDC参数设置无效。</p>
</td>
</tr>
<tr id="row860mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p862mcpsimp"><a name="p862mcpsimp"></a><a name="p862mcpsimp"></a>0xa0258018</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p id="p864mcpsimp"><a name="p864mcpsimp"></a><a name="p864mcpsimp"></a>OT_ERR_GDC_NOT_READY</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p866mcpsimp"><a name="p866mcpsimp"></a><a name="p866mcpsimp"></a>系统未初始化。</p>
</td>
</tr>
<tr id="row867mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p869mcpsimp"><a name="p869mcpsimp"></a><a name="p869mcpsimp"></a>0xa025800c</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p xml:lang="sv-SE" id="p871mcpsimp"><a name="p871mcpsimp"></a><a name="p871mcpsimp"></a>OT_ERR_GDC_NOT_SUPPORT</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p873mcpsimp"><a name="p873mcpsimp"></a><a name="p873mcpsimp"></a>操作不支持。</p>
</td>
</tr>
<tr id="row874mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p876mcpsimp"><a name="p876mcpsimp"></a><a name="p876mcpsimp"></a>0xa025800d</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p id="p878mcpsimp"><a name="p878mcpsimp"></a><a name="p878mcpsimp"></a>OT_ERR_GDC_NOT_PERM</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p880mcpsimp"><a name="p880mcpsimp"></a><a name="p880mcpsimp"></a>操作不允许。</p>
</td>
</tr>
<tr id="row881mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p883mcpsimp"><a name="p883mcpsimp"></a><a name="p883mcpsimp"></a>0xa0258022</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p id="p885mcpsimp"><a name="p885mcpsimp"></a><a name="p885mcpsimp"></a>OT_ERR_GDC_BUSY</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p887mcpsimp"><a name="p887mcpsimp"></a><a name="p887mcpsimp"></a>GDC通道号申请失败</p>
</td>
</tr>
<tr id="row888mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p890mcpsimp"><a name="p890mcpsimp"></a><a name="p890mcpsimp"></a>0xa0258003</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p id="p892mcpsimp"><a name="p892mcpsimp"></a><a name="p892mcpsimp"></a>OT_ERR_GDC_INVALID_CHN_ID</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p894mcpsimp"><a name="p894mcpsimp"></a><a name="p894mcpsimp"></a>GDC通道号无效</p>
</td>
</tr>
<tr id="row895mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p897mcpsimp"><a name="p897mcpsimp"></a><a name="p897mcpsimp"></a>0xa0258009</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p id="p899mcpsimp"><a name="p899mcpsimp"></a><a name="p899mcpsimp"></a>OT_ERR_GDC_CHN_UNEXIST</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p901mcpsimp"><a name="p901mcpsimp"></a><a name="p901mcpsimp"></a>GDC通道号不存在</p>
</td>
</tr>
<tr id="row902mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p904mcpsimp"><a name="p904mcpsimp"></a><a name="p904mcpsimp"></a>0xa0258017</p>
</td>
<td class="cellrowborder" valign="top" width="48%" headers="mcps1.2.4.1.2 "><p id="p906mcpsimp"><a name="p906mcpsimp"></a><a name="p906mcpsimp"></a>OT_ERR_GDC_BUF_FULL</p>
</td>
<td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.4.1.3 "><p id="p908mcpsimp"><a name="p908mcpsimp"></a><a name="p908mcpsimp"></a>缓冲区数据已满</p>
</td>
</tr>
</tbody>
</table>

